これまでもPHPExcelを使用して
①既存のExcelテンプレートを開く
②必要データをセット
③別名で保存して閉じる(orダウンロードさせる)
というようなことはやってきましが、これまではExcel2003などで作成されたファイルに
対して編集を行ってきたので出来ていました。
今回、既に用意されたExcelテンプレートの社内文書があり、これがExcel2010で作られています。
「.xls」で保存されているので、ここまでは問題ないと思うのですが、チェックボックスなどが設置されています。
これに対して、これまでと同じやり方で編集・保存をしてみたところ、チェックボックスがすべて消えてしまいます。
(チェックボックスは後で人間が手動入力する部分なのでシステムからは何も操作しない部分です)
おそらくExcel2010で作られたチェックボックスの部分(2003などのようにくぼんで見えるタイプではなくて、平面的なやつ)にPHPExcelが対応できてないのかなと予想しているのですが、何か対応策をご存じありませんか?
または、代替案がありましたら教えてください。
Excelのファイルを開いたときに チェックボックスがなかったら それをつけるような マクロを取り入れてみたらいかがでしょうか?
ちなみに質問にはxls形式のエクセルファイルを「PHPExcel_Reader_Excel5()」で
編集・保存した場合の現象を書いています。
ちなみにダメもとで
$objReader=new PHPExcel_Reader_Excel5();
↓
$objReader=new PHPExcel_Reader_Excel2007();
と変えてみたところ
ZipArchive::getFromName()[siparchive.getfromname]:Invalid or unitialized Zip object
というエラーが出て、正常終了しません。
自分なりに検索かけてみましたが、情報が少ないため、ここで質問させていただきました。