Main Content

xlswrite

(非推奨) スプレッドシート ファイルに書き込む

xlswrite は推奨されません。代わりに、writetablewritematrix または writecell を使用してください。詳細については、互換性についての考慮事項を参照してください。

説明

xlswrite(filename,A) は、行列 AMicrosoft® Excel® スプレッドシート ワークブック filename の最初のワークシートにセル A1 を始点として書き込みます。

xlswrite(filename,A,sheet) は、指定されたワークシートに書き込みます。

xlswrite(filename,A,xlRange) は、そのワークブックの最初のワークシートの、xlRange によって指定されている四角形の領域に書き込みます。Excel 範囲構文は、'A1:C3' のように使用してください。

xlswrite(filename,A,sheet,xlRange) は、指定されたワークシートの範囲に書き込みます。

status = xlswrite(___) は、前述の構文の任意の入力引数を使用して、書き込み操作のステータスを返します。操作が正常に完了した場合、ステータスは 1 です。その他の場合は、ステータスは 0 です。

さらに、[status,message] = xlswrite(___) は、書き込み操作によって生成された警告メッセージまたはエラー メッセージを構造体 message で返します。

すべて折りたたむ

7 要素ベクトルを Excel® ファイルに書き込みます。

filename = 'testdata.xlsx';
A = [12.7 5.02 -98 63.9 0 -.2 56];
xlswrite(filename,A)

テキストと数値が混在するデータを Excel® ファイルに書き込みます。書き込みの開始位置は Sheet2 のセル E1 です。

filename = 'testdata.xlsx';
A = {'Time','Temperature'; 12,98; 13,99; 14,97};
sheet = 2;
xlRange = 'E1';
xlswrite(filename,A,sheet,xlRange)

入力引数

すべて折りたたむ

ファイル名。文字ベクトルまたは string として指定します。

filename が存在しない場合、関数 xlswrite はファイルを作成します。その際、指定された拡張子に基づいて形式を判断します。Excel 97 ~ 2003 と互換性のあるファイルを作成するには、拡張子 .xls を指定します。ファイルを Excel 2007 形式で作成するには、拡張子 .xlsx.xlsb、または .xlsm を指定します。拡張子が指定されない場合、関数 xlswrite は既定の設定 .xls を使用します。

例: 'myFile.xlsx' または "myFile.xlsx"

例: 'C:\myFolder\myFile.xlsx'

例: 'myFile.csv'

データ型: char | string

入力行列。2 次元の数値、文字配列、または string 配列として、あるいは、各セルに単一要素が含まれる場合は cell 配列として指定します。

A がスカラー数値またはテキスト以外を含む cell 配列の場合、xlswrite は確認を行うことなくスプレッドシート内の対応するセルを空のままにします。

配列 A の最大サイズは、関連付けられた Excel のバージョンによって異なります。Excel の仕様と制限の詳細は、Excel ヘルプを参照してください。

例: [10,2,45;-32,478,50]

例: {92.0,'Yes',45.9,'No'}

例: "ABCDEF"

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell

ワークシート名。次のいずれかとして指定されます。

  • ワークシート名を含む文字ベクトルまたは string。名前にコロン (:) を含めることはできません。スプレッドシート ファイルでシート名を決めるには、関数 xlsfinfo を使用します。

  • ワークシート インデックスを示す正の整数。

sheet が存在しない場合は、xlswrite がワークシート コレクションの最後に新しいシートを追加します。sheet がワークシート数より大きいインデックスの場合は、sheet と同じワークシート数になるまで xlswrite が空のシートをワークブックに追加します。いずれの場合でも、xlswrite は新しいワークシートが追加されたことを示す警告を表示します。

データ型: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

四角形の範囲。文字ベクトルまたは string として指定します。

書き込む領域を定義する 1 組の対角を使用して xlRange を指定します。たとえば、'D2:H4' は、ワークシート上の 2 つの角 D2H4 の間にある 3 行 5 列の四角形領域を表します。xlRange 入力では大文字小文字は区別されず、Excel A1 参照スタイルが使用されます (Excel ヘルプを参照)。xlswrite は名前付範囲を認識しません。

  • sheet が指定されない場合、xlRange は対角と 1 つのコロンの両方を含まなければなりません。これは、セル数が 1 つの場合でも適用されます ('D2:D2' など)。それ以外の場合、関数 xlswrite は入力をワークシート名 ('D2' など) として解釈します。

  • sheet を指定した場合、xlRange は最初のセルのみを指定できます ('D2' など)。xlswrite は、このセルで始まる入力配列 A を書き込みます。

  • xlRange が入力配列 A のサイズより大きい場合、Excel ソフトウェアは残りの領域を #N/A で埋めます。xlRangeA のサイズより小さい場合、関数 xlswritexlRange に適合するサブセットのみをファイルに書き込みます。

データ型: char | string

出力引数

すべて折りたたむ

書き込み操作のステータス。1 (true) または 0 (false) として返されます。書き込み操作が正常に完了した場合、status1 です。それ以外の場合、status0 です。

書き込み操作中に生成されたエラーまたは警告。次の 2 つのフィールドを含む構造体配列として返されます。

message警告またはエラー メッセージのテキスト。
identifierメッセージ識別子。

制限

  • 関数 xlswrite で CSV ファイルに書き込む場合、異なるデータ型を含む cell 配列の書き込みはサポートされません。

  • コンピューターに Excel for Windows® がない場合、または MATLAB® Online™ を使用している場合、関数 xlswrite は以下を行います。

    • 配列 A をコンマ区切り値 (CSV) 形式でテキスト ファイルに書き込みます。A は数値行列でなければなりません。

    • 引数 sheet と引数 xlRange を無視します。

    この制限は (通常は Excel インストール環境の一部である) COM サーバーが使用できない場合にも適用されます。

ヒント

  • コンピューターに Microsoft Office 2003 があっても、ファイルを Excel 2007 形式で作成する場合は、Office 2007 互換機能パックをインストールしてください。

  • Excel および MATLAB は、日付をそれらの日付を表すテキスト ('10/31/96' など) またはシリアル日付値 (729329 など) として保存します。配列にシリアル日付値が含まれる場合は、datestr を使用してこれらの日付をテキスト表現に変換してから、xlswrite を呼び出します。

  • データを独自の書式 (フォントや色など) をもつ Excel ファイルに書き込むには、関数 xlswrite ではなく関数 actxserver を使用して Windows COM サーバーに直接アクセスします。たとえば、この MathWorks Support Answer では actxserver を使用して MATLAB と Excel との間に接続を確立し、データをワークシートに書き込み、セルの色を指定しています。

アルゴリズム

Excel は Inf の値を 65535 に変換します。MATLAB は NaN の値を空のセルに変換します。

バージョン履歴

R2006a より前に導入

すべて折りたたむ

R2019a: xlswrite は非推奨

xlswrite は推奨されません。代わりに、writetablewritematrix または writecell を使用してください。xlswrite を削除する予定はありません。

R2019a 以降、代わりに writetablewritematrix または writecell を使用してください。関数 writetable、関数 writematrix、関数 writecell は、関数 xlswrite よりクロスプラットフォームのサポートとパフォーマンスが優れています。

次の表に、xlswrite の一般的な使用方法と、代わりに writetablewritematrix または writecell を使用するようにコードを更新する方法を示します。

非推奨

推奨

xlswrite(filename,M)

表形式データをスプレッドシートに書き込むには、代わりに次のいずれかのオプションを使用します。

table を書き込む:

writetable(T,filename)

行列を書き込む:

writematrix(M,filename)

cell 配列を書き込む:

writecell(C,filename)