[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Spout のインストール記事での簡単例としてエクセルファイル(XLSXファイル)への出力を記しました。
Spout にはXLSXファイルのみならず、CSVファイル、ODSファイルへの出力も可能で、 XLSXファイルの場合とまったく同じ形式で処理できます。
上記3種類のファイルの処理クラスを各タイプごとのものを、処理の先頭で宣言してやります。
その後のデータ処理はほぼ同じものになります。
先ずは前回の例のソースを以下に記します。
■XLSXファイルの書込み例
<?php // ライブラリ読込 require '../vendor/autoload.php'; // 利用クラスエイリアス use Box\Spout\Writer\Common\Creator\WriterEntityFactory; // XLSX書込クラス生成 $writer = WriterEntityFactory::createXLSXWriter(); // 書込みファイル指定 $writer->openToFile('test.xlsx'); // セルデータ $cells = [ WriterEntityFactory::createCell('A001'), WriterEntityFactory::createCell('B002'), WriterEntityFactory::createCell('C003'), ]; // 行データ $singleRow = WriterEntityFactory::createRow($cells); // 行データを3行追加 $writer->addRow($singleRow); $writer->addRow($singleRow); $writer->addRow($singleRow); // エクセルファイルの書込 $writer->close(); ?>
■CSVファイルの書込み例
以下のソースから分かる様に、XLSX書込クラス生成 WriterEntityFactory::createXLSXWriter() が WriterEntityFactory::createCSVWriter() に変わり、ファイル名の拡張子が CSV 用になっています。
<?php // ライブラリ読込 require '../vendor/autoload.php'; // 利用クラスエイリアス use Box\Spout\Writer\Common\Creator\WriterEntityFactory; // CSV書込クラス生成 $writer = WriterEntityFactory::createCSVWriter(); // 書込みファイル指定 $writer->openToFile('test.csv'); // セルデータ $cells = [ WriterEntityFactory::createCell('A001'), WriterEntityFactory::createCell('B002'), WriterEntityFactory::createCell('C003'), ]; // 行データ $singleRow = WriterEntityFactory::createRow($cells); // 行データを3行追加 $writer->addRow($singleRow); $writer->addRow($singleRow); $writer->addRow($singleRow); // エクセルファイルの書込 $writer->close(); ?>
出力されたCSVファイルをエディタ(秀丸ですが)で見てみると以下の様になります。
■ODSファイルの書込み例
以下のソースから分かる様に、XLSX書込クラス生成 WriterEntityFactory::createXLSXWriter() が WriterEntityFactory::createODSWriter() に変わり、ファイル名の拡張子が ODS 用になっています。
ちなみに ODSファイル とは、 「表計算ソフトなどで作成・編集されるワークシートの標準ファイル形式の一つで、 Apache OpenOffice(旧OpenOffice.org)やLibreOfficeなどのオープンソースのオフィスソフトが既定のファイル形式として採用している。」 標準のファイル拡張子は「.ods」。
(『IT用語辞典 e-Words』より)
<?php // ライブラリ読込 require '../vendor/autoload.php'; // 利用クラスエイリアス use Box\Spout\Writer\Common\Creator\WriterEntityFactory; // ODS書込クラス生成 $writer = WriterEntityFactory::createODSWriter(); // 書込みファイル指定 $writer->openToFile('test.ods'); // セルデータ $cells = [ WriterEntityFactory::createCell('A001'), WriterEntityFactory::createCell('B002'), WriterEntityFactory::createCell('C003'), ]; // 行データ $singleRow = WriterEntityFactory::createRow($cells); // 行データを3行追加 $writer->addRow($singleRow); $writer->addRow($singleRow); $writer->addRow($singleRow); // エクセルファイルの書込 $writer->close(); ?>
出力されたODSファイルを見てみると以下の様になります。 (ODSファイルはエクセルソフトでオープンできます)
コメント