ラボ > PHP:PhpSpreadsheet

PhpSpreadsheet グラフ関連

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

基本

グラフを作る場合、下記のような感じで作る

1.Y軸を作る(?)・・・基本、無しで大丈夫っぽい
2.プロットエリアで使うグラフの元をつくる
3.プロットエリアにグラフの元をセット
4.グラフエリアにプロットエリア、タイトルや凡例などをセット
5.シートに描画
6.ファイルの出力

・・・具体的な内容は公式をはじめ各サイトが公式の内容を適当に翻訳しているので省く。

めも

出力ファイルにグラフを表示させる

「setIncludeCharts(true)」が必須

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

「Y軸を2つ」ってのは基本、無理

2020-07-25時点では未実装っぽい。

古い内容だけど「Secondary y-axis not available in PHP Spreadsheet #560」を参考に(自己責任で)対応すれば使えるようになる。
※バージョンアップのとき、この辺が先祖返りしないように気をつける必要あり

▼差し替え対象
・PhpOffice\PhpSpreadsheet\Writer\Xlsx\Chart.php
・PhpOffice\PhpSpreadsheet\Chart\Chart.php
・PhpOffice\PhpSpreadsheet\Chart\PlotArea.php
※変数、定数指定が文字列で指定されていたりするので・・・関係のある差分のみ調べて自分で書き換えるのが無難
→折れ線グラフと棒グラフの複合にすると・・・折れ線の範囲が0~1万、棒グラフの範囲が0~100とかだったら・・・折れ線の範囲に引っ張られ棒グラフの高さが全部低くなる。

単語

・プロットエリア:Excelでの「グラフそのもの」。X軸とか無し。
・グラフエリア:Excelでの「プロットエリア」と「X軸やタイトル、凡例など」まるっと含めた全部
・レジェンド:凡例