使用多个工作表读取Excel文件

时间:2015-07-27 12:50:01

标签: excel matlab repeat import-from-excel data-import

我有一个包含4张纸的Excel文件。

每张纸的格式相同,但内部数据不同。例如:

sheet1:
              sub1 sub2 sub3

    person1    2    3     4
    person2    9    0     1
    person3    8    4     2

sheet2:

              sub1 sub2 sub3

    person1    5    7     8
    person2    1    3     7
    person3    4    1     3

现在,我知道如何阅读1张数据:

[data, titles] = xlsread(FileName, 'sheet1');

但是,当我不知道文档中有多少张纸时,如何存储所有纸张中的所有数据?

2 个答案:

答案 0 :(得分:4)

您可以使用https://regex101.com/r/eI8iK4/1获取工作表列表,然后循环显示该列表:

[status,sheets] = xlsfinfo(FileName)

for s = 1:numel(sheets)
    ...
    [data,titles]=xlsread(FileName,sheets(s))
    ...
end

答案 1 :(得分:0)

不需要for循环。 importdata函数(在R2006a之前引入)可以轻松处理这种情况。例如,我有一个包含5张包含数据的excel文件,如下所示:

Sample data

如您所见,它包含文本,数字和空格。在R2017b上,拨打

xlsData = importdata('name-of-file.xlsx');

会产生包含两个字段的structdata(对于数字值,保留double数组)和textdata(对于文本,保留cell数组),每个字段都对应Excel文件中的工作表名称。