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
とすれば適用されます.
また使用時の注意点として,
- WorkBook::setVersionに8を指定して呼び出す.
- 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だからネ!