(チェックボックス自体は後で人が手動選択するために設置されたものです。)
ですが、
①PHPExcelで上記をやると、あらかじめ設置していたチェックボックスがすべて消えてしまうことがわかりました。
② ①の解決策として、Excelオープン時にVBAでチェックボックスを設置するようにしたのですが、PHPExcelを通すとマクロすらなくなってしまうことがわかりました。
チェックボックスを保持するような方法は何かないでしょうか?
他のライブラリでも、もしくは全く別の方法でもいいですのでご教示願います。
チェックボックス(フォーム)やマクロを保存するにはxlsm形式でセーブしなければなりませんが、PHPExcelはxlsmに対応していません。
残念ながらPHPのライブラリやフレームワークでxlsm形式に対応しているものはないので、WindowsのCOMを使ってExcelアプリケーションを呼び出して、加工→保存をする必要があります。
下記を参考にしてください。
http://d.hatena.ne.jp/takuya_1st/20071213/1197513796
別の手段ですが PHPで CSV等のファイルを作成し、それを エクセルで取り込まさせるというのは ダメでしょうか?
質問からすると PHPExcelの機能とか使い勝手が悪いようなので とりあえず
出力だけに それを用い、別の手段にて 本来の目的を果たせるような仕組みにしたほうがいいような感じがします。
ちなみにExcel2000や2003で作成したチェックボックス(くぼんだような見た目のもの)もPHPExcelで編集したら継承されるかどうか試しましたが、同様に継承されませんでした。
余計な情報かもしれませんが、前回の質問時はその辺りが曖昧でしたので今回明記しておきます。
PHPExcelを使用するのをやめて、COMを使用してみたところ
チェックボックスを引き継いで、保存することができました。
ありがとうございました。