Вызов и извлечение имени листа Excel с использованием индекса листа в MATLAB
Мы можем вызвать лист, используя его имя или индекс: 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?
1 ответ
Решение
Увидеть 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