How to read all sheets from an excel and output them

208 views (last 30 days)
I have an excel file that contains multiple sheets, each of them is 44*16. I used the following code to read the multiple sheets:
for k=1:numel(sheet_name)
This code gives me sheet_name=1*8 cell, this includes the names of my sheets in this excel file, each of them looks shows as {44*16 double}. Then I want to read all the data from each sheet and plot them into one figure. I would like to know how should I read the data in from {sheet_name}. And I want to plot the figure using the "for" loop.
Thanks for helping.

Answers (2)

Fangjun Jiang
Fangjun Jiang on 30 Jan 2018
Edited: Fangjun Jiang on 30 Jan 2018
Your code above already reads the data from all the sheets, i.e. data{1} contains the data from the first sheet, ..., data{8} contains the data from the 8th sheet.
To plot the data, add "figure;hold on" prior to your for-loop and then use plot() inside your for-loop. Reference the data as data{k}(row_index, col_index).

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 2 Feb 2023
Edited: Sulaymon Eshkabilov on 2 Feb 2023
An alternative solution to this exercise with MATLAB recommended functions is:
FName ='Exercise1.xlsx';
S_names = sheetnames(FName); % Recommended fcn: sheetnames()
for ii=1:numel(S_names)
D{ii}=readtable(FName, 'Sheet', S_names(ii)); % Recommended fcn: readtable() or readmatrix() or readcell()
plot(D{ii}.Var1, D{ii}.Var2), hold all

Community Treasure Hunt

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

Start Hunting!

Translated by