|
ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。
zip形式
tgz形式
先日、PHP ClassesのSpreadsheet_WriteExcelクラスを使ってExcel形式でデータをダウンロードさせるサンプルを作ってみましたが、今度はPEAR版を使って同じものを作ってみました。
セットアップ手順ですが、上記のページからSpreadsheet_Excel_Writer-0.3.tgzを適当なディレクトリにダウンロードします。そして、以下のようにpearコマンドを実行するだけで完了です。
●Spreadsheet_Excel_Writerのインストール$ pear install Spreadsheet_Excel_Writer-0.3.tgz
install ok: Spreadsheet_Excel_Writer 0.3
$
さて、サンプルスクリプトの方ですが。。。PHP Classes版と変わりませんね(^-^;
ざっと見た&使った感じ、
- 新たにSpreadsheet_Excel_Writerクラス(Writer.phpで定義。Spreadsheet_Excel_Writer_Workbookクラスを継承)が追加されていて、PHP Classes版のWorkbookクラスの代わりにインスタンス化する
- メソッド名がPHP Classes版のようにアンダースコアで区切られていない
- 作成したExcelファイルデータの出力は、Spreadsheet_Excel_Writerクラスのsendメソッドで行う
あたりに気を付ければ大丈夫と思います。
フォントの変更ですが、2003/06/05現在、PEAR版でもアクセサは用意されていません。PHP Classes版と同様、Format.phpで定義されているSpreadsheet_Excel_Writer_Formatクラスのメンバー変数「$_font_name」にフォント名を直接代入します。
PHP Classes版と変数名が違うので注意が必要です(PHP Classes版は「$font」)
[2004/03/11] 2004/03/11現在の最新版であるバージョン0.7で確認したところ、FormatクラスにsetFontFamilyメソッドが用意されていました
●PHPスクリプトの一部
<?php
:
$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet($tablename);
:
$format =& $workbook->addFormat();
$format->_font_name = mb_convert_encoding("MS ゴシック", "shift_jis");
:
while(OCIFetch($stmt)) {
$excelrow++;
for ( $i = 1; $i <= $ncols; $i++ ) {
$worksheet->write(
$excelrow, ($i - 1),
mb_convert_encoding(
OCIResult($stmt, OCIColumnName($stmt,$i)), "shift_jis"));
}
}
:
$workbook->send($filename);
$workbook->close();
?>
|