ラボ > PHP:PhpSpreadsheet

PhpSpreadsheet エラーになったときのチェック項目

作成日:2020-07-24, 更新日:2020-07-24

基本

・シート名の指定が間違っている(※日本語OKだけど、英数にしておくのが無難かも?)
・書き込み失敗のときは、同一ファイル名を開いている

グラフありで出力したが、空白になる

「setIncludeCharts(true)」が必要。

use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter;

$writer = new XlsxWriter(〇〇〇);
$writer->setIncludeCharts(true);
$writer->save(〇〇〇);

※グラフありのExcelを読み込むときも同様に「setIncludeCharts(true)」を使えば良いらしい

出力したファイルをExcelで開くとエラーメッセージがでてくる

`〇〇〇.xlsx`の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?ブックの発行元が信頼できる場合は、[はい]をクリックしてください。

基本、無視しても良さそうなんだが気持ち悪いので、その対応。

参考にしたサイトが悪い場合

・参考にしたサイトがどこかからコピペしただけ・・・だったりすると、元のサイトの誤植がそのまま記載されている
・単純に情報が古く現時点では使えない・・・だったりする

▼2020-07-24時点
・「new Chart()」で使う「プロパティ:displayBlanksAs」の値に「0」は無い。
→「gap, zero, span」のいずれか。

元ファイルの問題

1.ExcelファイルをPhpSpreadsheetで読み込む。
2.グラフをセットして出力。
3.ExcelファイルをExcelで開く→上記エラー

対応

「1」で読み込むファイルを修正し、下記のような流れに。

0-1.元になるExcelファイルをExcelで開く
0-2.Excelで新規ファイルを作成
0-3.「0-2」で作成したファイルに「0-1」の内容を全選択して、コピペ(※シートの複製や、別名保存ではない)
0-4.「0-3」を保存
1.「0-4」のExcelファイルをPhpSpreadsheetで読み込む。
2.グラフをセットして出力。
3.ExcelファイルをExcelで開く→エラーがでなくなった