ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Excel スプレッドシートへのエクスポート

スプレッドシート ファイルへの書き込み

xlswrite を使用して、行列を Microsoft® Excel® スプレッドシート ファイルにエクスポートします。xlswrite では、ワークスペースからファイル内の任意のワークシートに、またそのワークシート内の任意の場所にデータをエクスポートできます。既定の設定では、xlswrite によって、ファイル内の最初のワークシートにセル A1 を始点として行列のデータが書き込まれます。

この例では、テキストと数値の混在するデータをファイル climate.xls に書き込みます。Temperatures というラベルの、その内にデータの書き込み領域を指定したワークシートを指定して、xlswrite を呼び出します。xlswrite によって 4 行 2 列の行列 d が、左上隅のセル E1 を始点とする矩形領域に書き込まれます。

d = {'Time', 'Temp'; 12 98; 13 99; 14 97}
d = 
    'Time'    'Temp'
    [  12]    [  98]
    [  13]    [  99]
    [  14]    [  97]

xlswrite('climate.xls', d, 'Temperatures', 'E1');

型が混在するデータがテーブルにある場合は、関数 writetable を使用します。

新しいワークシートの追加

書き込み先のワークシートがファイルに存在しない場合、xlswrite によって次の警告が表示されます。

Warning: Added specified worksheet.

この警告は次のコマンドで無効化できます。

warning off MATLAB:xlswrite:AddSheet

xlswrite でサポートされているファイル形式

xlswrite では、使用している Windows® 版 Excel のバージョンで認識される任意のファイル形式で書き込みできます。Excel 2003 がインストールされており、2007 形式 (XLSX、XLSB、XLSM など) で書き込む場合は、Office 2007 互換機能パックをインストールしなければなりません。

    メモ:   Windows 版 Excel がインストールされていないシステムを使用している場合は、xlswrite によってコンマ区切り値 (CSV) ファイルにデータが書き込まれます。

日付の変換

MATLAB® および Excel の両方のアプリケーションで、日付は文字列または数値として表現できます。たとえば、2009 年 5 月 31 日は文字列 '05/31/09' または数値 733924 として表現できます。MATLAB 内部では、関数 datestr および関数 datenum によって文字列と数値の間で表現を簡単に変換できます。

日付が文字列として保存された行列をエクスポートする場合、Excel での処理前に日付を変換する必要はありません。

ただし、日付が数字として保存された行列をエクスポートする場合は、日付を変換しなければなりません。Excel でも MATLAB でも、数値日付は特定の基準日から連続して経過した日数を表しますが、これらのアプリケーションでは異なった基準日が使用されています。

次の表に MATLAB と Excel の基準日を示します。1900 年と 1904 年の日付計算の詳細は、Excel のヘルプを参照してください。

アプリケーション基準日
MATLAB0000 年 1 月 0 日
Excel for Windows1900 年 1 月 1 日
Macintosh 版 Excel1904 年 1 月 2 日

例 — 数値日付を含む Excel ファイルのエクスポート

数値行列 wt_log について考えます。最初の列には数値日付が記録されており、2 番目の列には体重が記録されています。

wt_log = [729698 174.8; ...
          729726 175.3; ...
          729760 190.4; ...
          729787 185.7];

% To view the dates before exporting, call datestr:
datestr(wt_log(:,1))

datestr によって返されるフォーマット済み日付は次のようになります。

04-Nov-1997
02-Dec-1997
05-Jan-1998
01-Feb-1998

数値行列を Windows 版 Excel にエクスポートする (既定の 1900 年からの日付計算システムを使用する) には、次のように日付を変換します。

datecol = 1;
wt_log(:,datecol) = wt_log(:,datecol) - datenum('30-Dec-1899');
xlswrite('new_log.xls', wt_log); 

Macintosh 版 Excel (既定の 1904 年からの日付計算システムを使用する) で使用するためにエクスポートするには、次のような変換を行います。

datecol = 1;
wt_log(:,datecol) = wt_log(:,datecol) - datenum('01-Jan-1904');
xlswrite('new_log.xls', wt_log); 

Excel ファイルにおけるセルの書式設定

Windows システムの Excel ファイルにカスタム形式 (フォントや色など) を使用してデータを書き込むには、関数 xlswrite ではなく、関数 actxserver を使用して COM サーバーに直接アクセスします。たとえば、Technical Solution 1-QLD4K では actxserver を使用して MATLAB と Excel との間の接続を確立し、データをワークシートに書き込んでセルの色を指定します。

詳細は、「COM のご利用の前に」を参照してください。

この情報は役に立ちましたか?