在 MATLAB 中使用 sheet 的索引调用和提取 excel sheet 的名称

Call and extract name of an excel sheet using the index of sheet in MATLAB

我们可以通过 xlsread 函数使用其名称或索引调用 sheet,如下所示:

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

在这个循环中,如果要调用并提取指定的 sheet 名称(使用 sheet 的索引),正如我们在上面循环的注释行中看到的那样,并将名称存储在元胞数组中.我如何在 MATLAB R2015a 中执行此操作?

请参阅 xlsfinfo,它有一个可选的 sheets 输出,即 returns sheet 名称的元胞数组。例如:

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

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

Returns:

sheets = 

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

请注意,Sheet1 仅存在,因为我生成了一个空白点差sheet。如果在 xlswrite 调用中指定的 sheet 名称在目标 sheet 中不存在,它将被添加到工作簿的末尾。

编辑: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