Import/convert an Excel file with more worksheets into a structure with more fields, one field for each worksheet

조회 수: 12 (최근 30일)
Hi All,
I would like to import/convert an excel file which has n worksheets, into a structure with n fields, like S.f1, S.f2, ..., S.fn, one field for each worksheet of the Excel file, in MATLAB.
Is there anyone who could help me?
Thanks,
Mike

채택된 답변

Bob Thompson
Bob Thompson 2019년 7월 26일
Generally, importing multiple excel sheets is done by calling the xlsread command multiple times. One of the flags of the command is for designating which sheet you are using. The command does not import the information into a structure array, but you can reorganize the information from the imported matrix into a structure array easily enough.
for i = 1:nsheets
[~ ~ data] = xlsread('myexcelfile.xlsx',i);
[mystruct.data1] = data{range1};
[mystruct.data2] = data{range2};
[mystruct.data3] = data{range3};
[mystruct.data4] = data{range4};
end
Obviously you need to make your own ranges and structure fields, but the basic concept is sound.
  댓글 수: 5
Guillaume
Guillaume 2019년 7월 26일
편집: Guillaume 2019년 7월 26일
Well, actually, I made a mistake and indeed should have made data a cell array
for i = 1:numel(sheets)
[~, ~, mystruct.data{i}] = xlsread(excelfile, i); %correct syntax!
end
edit: or another option is to make data a matrix and make the structure an array by indexing the structure rather than the field:
for i = 1:numel(sheets)
[~, ~, mystruct(i).data] = xlsread(excelfile, i);
end
Mike
Mike 2019년 7월 26일
Thank you very much Guillame! I really appreciate your help.
Best regards,
Mike

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Import and Analysis에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by