PHPSpreadsheetで画像ファイルを挿入したらファイルが破損した話

Excelファイルが破損

PHPSpreadsheetで編集したExcelファイルを開こうとしたらこんなエラーが。

どうやらPHPSpreadsheetでExcelを編集するときに画像を挿入していると起きるバグらしい。

調べてみると少しだが情報が見つかった。

テンプレートに原因が!?

なんとテンプレートを作成する際に上書き保存を使うと破損するらしい。

つまり「新規作成→編集(途中保存なし)→保存(1回目)」であれば破損しないはず。

早速試してみると破損しない!成功した!・・・と思いきや。

別のテンプレートで破損が直りませんでした。

他にも原因があるようだ・・・。

ページ設定に注意!

テンプレートの上書き保存を使っても破損するという情報は見つからなかったので、ここからは自分で試行錯誤することに。

試行錯誤の結果、ページ設定をテンプレートで行うのも破損の原因となることが判明。

印刷時の用紙の向きやサイズ、拡大縮小、ヘッダーやフッターの設定等のすべてをテンプレートでは設定せず、PHPSpreadsheetで設定すれば破損を回避できました。