Paradigm Shift Design

ISHITOYA Kentaro's blog.

Spreadsheet_Excel_WriterでBIFF8を取り扱う

Spreadsheet_Excel_WriterではBIFF8を取り扱えるけれども色々問題があるらしく,調べてみるとでパッチを作ってくださっている人がいた.


ただ,patchファイルがエントリにべた張りだったので,patchとパッチ後のファイルをアップして置きました.元々iconvとmb_convert_encodingが混ざっているのでそれもついでに変更しておきました.問題があれば削除します.


パッチは,公式からversion0.9.1をダウンロードして解凍し

patch -d Spreadsheet_Excel_Writer-0.9.1 -p 1 < Spreadsheet_Excel_Writer-0.9.1.patch.txt

とすれば適用されます.


また使用時の注意点として,

  1. WorkBook::setVersionに8を指定して呼び出す.
  2. Worksheet::setInputEncodingメソッドを必ず呼び出すようにする.

が必要です.

<?php
$book = new Spreadsheet_Excel_Writer("test.xls");
$book->setVersion(8);
$sheet = $book->addWorksheet("テスト");
$sheet->setInputEncoding("sjis");
$sheet->write(0, 0, "テスト");
$book->close();
?>

これで,日本語も文字化けしないし,BIFF8以前の制限である1セル255文字までというのもなくなる.
xlsxが使えればいいんだけど某T社はまだ2000だからネ!