Main Content

Excel スプレッドシートへのデータの書き込み

表形式データのスプレッドシート ファイルへの書き込み

ワークスペース内の table を Microsoft® Excel® のスプレッドシート ファイルにエクスポートするには、関数 writetable を使用します。ワークスペースのデータは、ファイル内の任意のワークシートに、そしてそのワークシート内の任意の位置にエクスポートできます。既定では、writetable はファイルの第 1 ワークシートに、セル A1 から table データを書き込みます。

たとえば、列方向データをもつサンプル table を作成し、最初の 5 行を表示します。

load patients.mat
T = table(LastName,Age,Weight,Smoker);
T(1:5,:)
ans=5×4 table
      LastName      Age    Weight    Smoker
    ____________    ___    ______    ______

    {'Smith'   }    38      176      true  
    {'Johnson' }    43      163      false 
    {'Williams'}    38      131      false 
    {'Jones'   }    40      133      false 
    {'Brown'   }    49      119      false 

table T を、新規のスプレッドシート ファイル patientdata.xlsx の最初のシートに、セル D1 から書き込みます。ワークシートの書き込む部分を指定するには、名前と値のペアの引数 Range を使用します。既定では、writetable は、table 変数の名前をスプレッドシート ファイルの列見出しとして書き込みます。

filename = 'patientdata.xlsx';
writetable(T,filename,'Sheet',1,'Range','D1')

table T を、変数名なしで 'MyNewSheet' という新しいシートに書き込みます。変数名なしでデータを書き込むには、名前と値のペア WriteVariableNamesfalse として指定します。

writetable(T,filename,'Sheet','MyNewSheet','WriteVariableNames',false);

スプレッドシート ファイルへの数値データとテキスト データの書き込み

数値配列と cell 配列を Microsoft® Excel® のスプレッドシート ファイルにエクスポートするには、関数 writematrix または関数 writecell を使用します。個々の数値およびテキストのワークスペース変数がもつデータは、ファイル内の任意のワークシートに、そしてそのワークシート内の任意の位置にエクスポートできます。既定では、インポート関数はファイル内の最初のワークシートにセル A1 を始点として行列のデータを書き込みます。

たとえば、数値データをもつサンプル配列 A と、テキスト データと数値データをもつサンプル cell 配列 C を作成します。

A = magic(5)
C = {'Time', 'Temp'; 12 98; 13 'x'; 14 97}
A =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9


C = 

    'Time'    'Temp'
    [  12]    [  98]
    [  13]    'x'   
    [  14]    [  97]

新規スプレッドシート ファイル testdata.xlsx の最初のシートの 5 行 5 列の矩形領域 E1:I5 に、配列 A を書き込みます。

filename = 'testdata.xlsx';
writematrix(A,filename,'Sheet',1,'Range','E1:I5')

ワークシート Temperatures のセル B2 から始まる矩形領域に、cell 配列 C を書き込みます。最初のセルのみを使用して範囲を指定できます。

writecell(C,filename,'Sheet','Temperatures','Range','B2');

ワークシート Temperatures があらかじめ存在していなかったため writecell は警告を表示しますが、この警告は無効にできます。

新規ワークシート追加時の警告の無効化

書き込み先のワークシートがファイルに存在しない場合、関数 writetable および関数 writecell は次の警告を表示します。

Warning: Added specified worksheet.

警告メッセージを非表示にする方法については、警告の非表示を参照してください。

Excel ファイル内のセルの書式設定

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

詳細は、COM 入門を参照してください。

参考

| |