Spreadsheet_Excel_Writer って何?
Spreadsheet_Excel_Writer は、
COM コンポーネントを必要とせずに Excel ファイルを作成するためのツールです。
Spreadsheet_Excel_Writer
の現行版によって生成されたファイルは、
Excel5(BIFF5) フォーマットに相当します。
したがって、そのバージョンのエクセルの持つ機能はすべて使用可能です
(ただし、それ以降のバージョンの新機能は利用できません)。
使用法
Spreadsheet_Excel_Writer の一般的な使用法は、
膨大な (あるいはそれほどでもない) 量の情報をスプレッドシート形式に
まとめ、そこらじゅうにあふれている Excel (あるいは OpenOffice)
のような表計算プログラムで処理しやすくすることです。
それでは、実際どのように使用するのかを見てみましょう。
例 43-1典型的な使用法 <?php
require_once 'Spreadsheet/Excel/Writer.php';
// ワークブックを作成します
$workbook = new Spreadsheet_Excel_Writer();
// HTTP ヘッダを送信します
$workbook->send('test.xls');
// ワークシートを作成します
$worksheet =& $workbook->addWorksheet('My first worksheet');
// データを書き込みます
$worksheet->write(0, 0, 'Name');
$worksheet->write(0, 1, 'Age');
$worksheet->write(1, 0, 'John Smith');
$worksheet->write(1, 1, 30);
$worksheet->write(2, 0, 'Johann Schmidt');
$worksheet->write(2, 1, 31);
$worksheet->write(3, 0, 'Juan Herrera');
$worksheet->write(3, 1, 32);
// ファイルを送信します
$workbook->close();
?> |
|
ワークシートの前に、まずワークブックを作成したということに注意しましょう。
ワークシートはすべてワークブック内に含まれています。
また、ひとつのワークブックの中には複数のワークシートが含まれているかもしれません。
Spreadsheet_Excel_Writer を使用するプログラムを
書く際に注意すべき点がもうひとつあります。それは、ワークシートを
作成する際にアンパサンド符号 (&) を使用するということです。
アンパサンドは、ワークシートオブジェクトをコピーするのではなく
その参照を使用するということを意味します。もし何のことだか
さっぱりわからないとしても心配することはありません。
ワークシートを作成するために
addWorksheet() をコールしたり
書式設定を作成するために addFormat()
をコールしたりする際には必ずアンパサンドを使用する、とだけ
覚えておきましょう。
ファイルへの保存
さらに次の行が気になる人もいるでしょう。
// HTTP ヘッダを送信します
$workbook->send('test.xls'); |
これは、ブラウザにスプレッドシートを送信しているということを意味します。
単にスプレッドシートをマシン上に保存したいだけの場合には
どうすればいいのでしょうか。そのためには、単にごの行を省略し、
その代わりに有効なファイルパスをワークブックのコンストラクタに
与えればよいのです。
たとえば、さきほどの例で作成したスプレッドシートを 'test.xls'
という名前で保存したければ、以下のように記述します。
例 43-2ファイルへの保存 <?php
require_once 'Spreadsheet/Excel/Writer.php';
// ファイルへのパスをここで指定します
$workbook = new Spreadsheet_Excel_Writer('test.xls');
$worksheet =& $workbook->addWorksheet('My first worksheet');
$worksheet->write(0, 0, 'Name');
$worksheet->write(0, 1, 'Age');
$worksheet->write(1, 0, 'John Smith');
$worksheet->write(1, 1, 30);
$worksheet->write(2, 0, 'Johann Schmidt');
$worksheet->write(2, 1, 31);
$worksheet->write(3, 0, 'Juan Herrera');
$worksheet->write(3, 1, 32);
// この場合でも、ワークブックを明示的に閉じる必要があります
$workbook->close();
?> |
|
その他の教本
Spreadsheet_Excel_Writer
の書式設定 (フォント・セルの色・文字の配置など)
に関して学習したければ、
ここでフォーマット教本をチェックすることができます。