MATLAB Answers

Single Excel (.xslx) with multiple sheets need to plot some columnes.

1 view (last 30 days)
Harr on 28 Oct 2020
Commented: Peter Perkins on 20 Nov 2020
Dear i have an .xslx file with 30 different sheets. From Sheet 3 to 30 i want to return 2 plots per sheet.
Excelfile name is: TEST12_St.xlsx
Name of the sheet number 3 is: Test12_1
Name of the sheet number 4 is: Test12_2
Name of the sheet number 30 is: Test12_28
Plot information:
x_axis: represents time in seconds and always in the B columne for the sheets (3 to 30). ploting should start from cell number 18 (ends differently at differnt sheets).
y_axis for Plot 1: is column D also from cell number 18
y_axis for Plot 2: is column E and F (need to be in different colors)
Please see the attached simplified Exce file.
I tried to start with the following code but I failed (Note: I am trying to learn and use Matlab to make my works easier)
% This one only read two columnes in Test sheet Test12_1
[Y, M, D, H, MN, S] = datevec(B);
h = plot(B,D)

Answers (2)

drummer on 1 Nov 2020
Edited: drummer on 2 Nov 2020
I encourage you to use readtable rather than xlsread. You can always use the importTool as well.
However, readtable is for a single spreadsheet. You'd do it for every single sheet you wanna read.
Instead, try spreadSheetDatastore, then you can access all of your sheets at once.
Afterwards, you can play with the variable names (columns) in the data you wanna extract.

Sunil Patidar
Sunil Patidar on 2 Nov 2020
Edited: Sunil Patidar on 3 Nov 2020
You can use xlsinfo function to read the file. Then, use xlsread function to read the content of the sheet.
refer to the following MATLAB Answeres link for more details:
Peter Perkins
Peter Perkins on 20 Nov 2020
drummer is correct. Strongly prefer readtable (or readmatrix) over xlsread. xlsread is old and far less capable than readtable.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!