phpSpreadsheetを長らく使っていますが、
あるとき「読み込んだExcelのグラフをそのまま出力したい」
という要望がありました。
何も考えずにグラフも読み込めるだろうと
過去のシステムからphpSpreadsheet使用部分をコピペして持ってきたところ、
出力したExcelはグラフだけ消えてしまいました。
知っている人にとってはなんということはないのですが、
グラフ付きのExcelを読み込むときは、Readerに対して
1 |
setIncludeCharts(true) |
という設定が必要だとわかりました。
また、出力時も同様に、Writerに対して
1 |
setIncludeCharts(true) |
が必要でした。
この歳になってまたひとつ勉強になりました。
例)
1 2 3 4 5 6 7 8 9 10 11 |
// Reader $excel_reader = new PhpOffice\PhpSpreadsheet\Reader\Xlsx(); $excel_reader->setIncludeCharts(true); $book = $excel_reader->load('template.xlsx'); // ~Excel編集処理~ // Writer $excel_writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($book); $excel_writer->setIncludeCharts(true); $excel_writer->save('output.xlsx'); |