0

我们可以使用它的名称或按函数索引来调用工作表,xlsread如下所示:

    for i=1:100
      file = xlsread(`filename.xlsx`,i)
      %% I want get name of the called sheet here (storing in cell array)
    end

在这个循环中,如果想要调用并提取指定的工作表名称(使用工作表的索引),我们可以在上面循环的注释行中看到,并将名称存储在一个单元格数组中。如何在 MATLAB R2015a 中执行此操作?

4

1 回答 1

7

请参阅xlsfinfo,它有一个可选sheets输出,该输出返回工作表名称的元胞数组。例如:

xlswrite('test.xlsx', 1:3, 'hi');
xlswrite('test.xlsx', 1:3, 'hello');
xlswrite('test.xlsx', 1:3, 'hey');

[~, sheets] = xlsfinfo('text.xlsx');

回报:

sheets = 

    'Sheet1'    'hi'    'hello'    'hey'

请注意,这Sheet1只是因为我生成了一个空白电子表格。如果调用中指定的工作表名称xlswrite不存在于目标工作表中,则会将其添加到工作簿的末尾。

编辑:ActiveX 实现:

eAX = actxserver('Excel.Application');
mywb = eAX.Workbooks.Open('C:\test.xlsx');
mysheets = eAX.sheets;
numsheets = mysheets.Count;

sheets = cell(1, numsheets);
for ii = 1:numsheets
    sheets{ii} = eAX.Worksheets.Item(ii).Name;
end

mywb.Close(false)
eAX.Quit
于 2015-08-11T12:01:43.860 回答