Effacer les filtres
Effacer les filtres

How to read all sheets from an excel and output them

187 vues (au cours des 30 derniers jours)
Yachao Chen
Yachao Chen le 30 Jan 2018
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:
[~,sheet_name]=xlsfinfo('filename.xlsx');
for k=1:numel(sheet_name)
data{k}=xlsread('filename.xlsx',sheet_name{k});
end;
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.

Réponses (2)

Fangjun Jiang
Fangjun Jiang le 30 Jan 2018
Modifié(e) : Fangjun Jiang le 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 le 2 Fév 2023
Modifié(e) : Sulaymon Eshkabilov le 2 Fév 2023
An alternative solution to this exercise with MATLAB recommended functions is:
clf
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
end

Community Treasure Hunt

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

Start Hunting!

Translated by