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 に答える