ドキュメンテーション

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

xlswrite

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

構文

  • xlswrite(filename,A)
  • xlswrite(filename,A,sheet)
  • xlswrite(filename,A,xlRange)
  • xlswrite(filename,A,sheet,xlRange)
  • status = xlswrite(___)
  • [status,message] = xlswrite(___)

説明

xlswrite(filename,A) は、配列 Afilename という名前の Excel® ファイルの最初のワークシートに書き込みます。書き込み開始セルは A1 です。

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

xlswrite(filename,A,xlRange) は、そのファイルの最初のワークシートの xlRange によって指定された四角形に書き込みます。

xlswrite(filename,A,sheet,xlRange) は、指定された sheet と範囲 xlRange に書き込みます。

status = xlswrite(___) は、書き込み操作のステータスを返し、前出の構文のいずれかの入力引数を含めることができます。操作が正常に完了した場合、ステータスは 1 です。その他の場合は、ステータスは 0 です。

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

すべて折りたたむ

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

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

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

スプレッドシートの特定のシートおよび範囲へのデータの書き込み

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

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

入力引数

すべて折りたたむ

filename — 書き込むファイルの名前文字列

書き込むファイルの名前。文字列として指定されます。

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

例: 'myFile.xlsx'

A — 書き込むデータ行列 | セル配列

書き込むデータ。2 次元の数値配列または文字配列として、あるいは、各セルに単一要素が格納されている場合はセル配列として返されます。

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

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

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

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

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

sheet — ワークシート名文字列 | 正の整数

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

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

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

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

xlRange — ワークシートの書き込む四角形部分文字列

ワークシートの書き込む四角形部分。文字列として指定されます。

構文 'C1:C2' を使用して xlRange を指定します。C1C2 は、書き込む範囲を定義する 2 つの対角になります。たとえば、'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 に適合する部分集合のみをファイルに書き込みます。

出力引数

すべて折りたたむ

status — 書き込み操作のステータス1 | 0

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

message — 書き込み操作中に生成されたエラーまたは警告構造体配列

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

message警告またはエラー メッセージのテキスト。文字列として返されます。
identifierメッセージ識別子。文字列として返されます。

詳細

すべて折りたたむ

ヒント

  • システムに Microsoft® Office 2003 がインストールされていても、ファイルを Excel 2007 形式で作成したい場合は、Office 2007 Compatibility Pack をインストールしてください。

  • Excel および MATLAB® は、日付を文字列 ('10/31/96' など) またはシリアル日付値 (729329 など) として保存します。配列 A にシリアル日付値が格納されている場合、datestr を使用して日付を文字列に変換してから xlswrite を呼び出します。あるいは、「Excel ファイルへの日付のインポートとエクスポート」を参照してください。

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

アルゴリズム

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

システムに Windows 版 Excel がインストールされていない場合、または COM サーバー (Excel の通常のインストール環境の一部) が使用不可の場合、関数 xlswrite は次のように動作します。

  • 配列 A をコンマ区切り値 (CSV) 形式でテキスト ファイルに書き込みます。

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

  • 入力配列 A がセル配列の場合、エラーを生成します。

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