How to use for loop with xlsread to read multiple sheets in an excel file

17 次查看(过去 30 天)
I am trying to read the same cells of data from different sheets in a single excel file.
I would prefer to use xlsread if possible. Additionally, the sheets are named not numbered.
Thank you

回答(1 个)

Sindar
Sindar 2020-3-6
from the documentation:
num = xlsread(filename,sheet,xlRange) %reads from the specified worksheet and range.
so, just loop over the sheets (with sheetnames):
xlRange = 'B2:C3';
sheets = sheetnames(filename);
for ind=1:length(sheets)
num(ind) = xlsread(filename,sheets(ind),xlRange)
end
  2 个评论
Kaushik Senguttuvan
Unable to perform assignment because the indices on the left side are not compatible with the size of the right side.
Error in AngDpn_Si_OPV (line 13)
num(ind) = xlsread(filename,sheets(ind))
This error comes. Any help would be great
Sindar
Sindar 2021-2-20
You need xlRange to be sure it finds the same amount of data in each sheet. Additionally, I missed explaining that you'll need to do more careful indexing depending on the size of the data. The lines work for scalar data, but different shapes need changes:
Column data
num(:,ind) = xlsread(filename,sheets(ind),xlRange);
Row data
num(ind,:) = xlsread(filename,sheets(ind),xlRange);
matrix data
num(:,:,ind) = xlsread(filename,sheets(ind),xlRange);
Or, you can use cells which will always work but are more of a pain to deal with after:
num{ind} = xlsread(filename,sheets(ind),xlRange);

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by