|
ここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。
zip形式
tgz形式
Spreadsheet_WriteExcelは「Spreadsheet_Excel_Writer」としてPEARにも取り込まれており、PHPClassesのSpreadsheet_WriteExcelのメンテナンスは終了している、という情報があります。Excelファイル形式でのデータダウンロード(PEAR版)にもまとめました。
何らかのファイルフォーマットでデータをダウンロードさせる、という用件は結構ありますね。以前(かなり前だ。。。)はCSV形式でのサンプルを作ってみましたが、ここではSpreadsheet_WriteExcelHeaderクラスを使ってExcelファイルを作成し、ダウンロードさせるサンプルを作ってみました。。。というより、php-usersに流れたネタをなぜか思い出してしまい、自分で試した時のまとめです(^-^;
このSpreadsheet_WriteExcelHeader。元々はPerlで記述されたSpreadsheet::WriteExcelというのがあり、そのPHP版のようです。重松さんのページにPHP+Excelの情報がまとめられています。
セットアップ手順は、PHP Classesのページからwrite_excel-2003-05-05.tar.gzをダウンロードし、require_once関数で読込可能なディレクトリに展開するだけです。
さて、サンプルスクリプトの方ですが。。。ほとんどCSVの時と同じような感じで、データを出力する時の処理が若干違うだけです。まあ、同じ事やってるので当然なんですが。。。(^-^; あとは、日本語の扱いを間違わなければ、かなりお手軽にExcelファイルを作成することができます。ちょっと(だけ)感動。
●PHPスクリプトの一部
<?php
:
$workbook = new Workbook("-");
$worksheet =& $workbook->add_worksheet($tablename);
$excelrow = 0;
$conn = OCILogon("scott", "tiger", "orcl");
$stmt = OCIParse($conn,"SELECT * FROM emp ");
OCIExecute($stmt);
$ncols = OCINumCols($stmt);
:
while(OCIFetch($stmt)) {
$excelrow++;
for ( $i = 1; $i <= $ncols; $i++ ) {
$worksheet->write(
$excelrow, ($i - 1),
mb_convert_encoding(
OCIResult($stmt, OCIColumnName($stmt,$i)), "sjis"));
}
}
:
?>
[2003/06/05] フォントの変更ですが、オリジナルのPerl版と異なり、アクセサ(Format->set_font())が用意されていないようです(2003/06/05現在、PEAR版でもアクセサは用意されていません)ので、Formatクラスのメンバー変数「$font」にフォント名を直接代入します。日本語を含むフォント名の場合は、shift_jisに変換する必要があります(MS-Excel 2000で確認)。
●フォントの変更
<?php
:
$format =& $workbook->add_format();
$format->font = mb_convert_encoding("MS ゴシック", "shift_jis");
:
?>
|