MATLAB 2019b readtable opts.DataRange import bug

4 views (last 30 days)
I am working with externally created Output.xlsx file importing it for the following processing. The code I am using:
fileToRead = 'OutputFile.xlsx'; %Enter name of file
mainSheet = 2; %Enter main sheet
%---------------------Parameters-for-Data-Reading--------------------------
opts = detectImportOptions(fileToRead, 'sheet', mainSheet, 'ReadVariableNames', false);
if (~isequal(opts.DataRange,'A19'))
opts.DataRange = 'A19';
end
%----------------------------Opening-of-xlsx-------------------------------
CostsFile = readtable('EnvironmentalCost.xlsx', 'ReadVariableNames', 1, 'ReadRowNames', 1);
Input1 = readtable(fileToRead, opts);
i=[1,14,27,40,53,66,79,92];
ValueMatrix = table2array(Input1(1:end,23:end));
if (~isequal(class(ValueMatrix),'double'))
ValueMatrix = str2double(ValueMatrix);
end
This code throws an error:Annotation 2019-10-15 154233.png
But, when I change the code in following way, without using opts. and directly opening the sheet it works.
%----------------------------Opening-of-xlsx-------------------------------
CostsFile = readtable('EnvironmentalCost.xlsx', 'ReadVariableNames', 1, 'ReadRowNames', 1);
Input1 = readtable('OutputFile.xlsx', 'sheet', 2);% - working for output file
i=[1,14,27,40,53,66,79,92];
ValueMatrix = table2array(Input1(18:end,23:end));
if (~isequal(class(ValueMatrix),'double'))
ValueMatrix = str2double(ValueMatrix);
end
This proves that there should be no errors within the table and there are no variables that are double and cell, but for some reason the error is thrown.
Another point is if I use another file generated by the same software and that has the same structure and as well data starts from A19, then everything works perfectly
fileToRead = 'Projekt A Analyse LCA.xlsx';
mainSheet = 1; %Enter main sheet
%---------------------Parameters-for-Data-Reading--------------------------
opts = detectImportOptions(fileToRead, 'sheet', mainSheet, 'ReadVariableNames', false);
if (~isequal(opts.DataRange,'A19'))
opts.DataRange = 'A19';
end
%----------------------------Opening-of-xlsx-------------------------------
CostsFile = readtable('EnvironmentalCost.xlsx', 'ReadVariableNames', 1, 'ReadRowNames', 1);
Input1 = readtable(fileToRead, opts);
i=[1,14,27,40,53,66,79,92];
ValueMatrix = table2array(Input1(1:end,23:end));
if (~isequal(class(ValueMatrix),'double'))
ValueMatrix = str2double(ValueMatrix);
end
ValueMatrix(isnan(ValueMatrix))=0;
So far I could not figure where is the problem and now considering submitting a bug report.
Is there any ideas how to fix this problem?

Answers (0)

Categories

Find more on Install Products in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!