Excel をオートメーション サーバーとして使用したスプレッドシート データの書き込み
この例では、MATLAB® 行列を Excel® スプレッドシートに書き込む方法を説明します。MATLAB データを Microsoft® Excel スプレッドシートへエクスポートする代替方法は、スプレッドシートの関数と例を参照してください。
Excel オブジェクトを作成します。
e = actxserver('Excel.Application');
ワークブックを追加します。
eWorkbook = e.Workbooks.Add; e.Visible = 1;
最初のシートをアクティブにします。
eSheets = e.ActiveWorkbook.Sheets;
eSheet1 = eSheets.get('Item',1);
eSheet1.Activate
MATLAB データをワークシートに入力します。
A = [1 2; 3 4]; eActivesheetRange = get(e.Activesheet,'Range','A1:B2'); eActivesheetRange.Value = A;
データを MATLAB に読み戻します。ここで、B
は cell 配列です。
eRange = get(e.Activesheet,'Range','A1:B2'); B = eRange.Value;
データを double の行列に変換します。cell 配列にスカラー値のみが含まれている場合は、次のコマンドを使用してください。
B = reshape([B{:}],size(B));
ワークブックをファイルに保存します。
SaveAs(eWorkbook,'myfile.xlsx')
Excel プログラムによりファイルの保存についてのダイアログ ボックスが表示されたら、適切な応答を選択して続行します。
ファイルを保存した場合は、ワークブックを閉じます。
eWorkbook.Saved = 1; Close(eWorkbook)
Excel プログラムを終了し、サーバー オブジェクトを削除します。
Quit(e) delete(e)
メモ
メモリ リークの発生を防ぐため、作成したワークブック オブジェクトを必ず閉じてください。