phpSpreadsheetで棒グラフを描くときに目盛りを消す

phpSpreadsheetでグラフを一から描こうとしている人はほとんどいないと思いますが、この方法でないとグラフが出力できないシステムがあり、苦労したので残しておきます。

棒グラフを描く方法はすぐわかったのですが、
棒グラフの目盛りは不要だったため消す必要があり、目盛りを表示しないで棒グラフを描く方法がなかなかわかりませんでした。

ほぼ半日使って調べたり、試行錯誤したりしました。
AIに聞いても存在しない関数を教えてくれたりしました。
(その関数は存在しませんよと返すと「はい、実は存在しません」だって。)

この情報にたどり着くまでかなり時間かかりました。

この$axisを、Chartクラスをnewするときの引数に渡せばメモリの線と数字が消えてくれます。
9番目の引数がX軸、10番目の引数がY軸です。

phpSpreadSheetで円グラフの色を指定する方法

phpSpreadSheetで円グラフ、ドーナツグラフの各値の色を指定する方法が分からず、
調べても情報がヒットせず、あきらめかけていたのですが、自分でいろいろ試していたらできました。

PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues で描画データをセットする際に、
7番目の引数に配列で指定すればいいみたいです。

例)

系列ラベルやX軸ラベルの指定時ではなく描画データの指定時なので注意。

最初からグラフを挿入したExcelを読み込めばいいじゃないと考えたのですが
読込んだExcelを更新して保存→PDF変換をする際にどうしてもグラフが消えてしまう事象があり解決できませんでした。
なのでphpSpreadSheetで自分でグラフを描くことにしました。

方法はとにかく、クライアントの要望どおりにやりたいことができたのでよしとします。

【phpSpreadsheet】PHPでExcelを読み込んだらグラフが消える

phpSpreadsheetを長らく使っていますが、
あるとき「読み込んだExcelのグラフをそのまま出力したい」
という要望がありました。

何も考えずにグラフも読み込めるだろうと
過去のシステムからphpSpreadsheet使用部分をコピペして持ってきたところ、
出力したExcelはグラフだけ消えてしまいました。

知っている人にとってはなんということはないのですが、
グラフ付きのExcelを読み込むときは、Readerに対して

という設定が必要だとわかりました。

また、出力時も同様に、Writerに対して

が必要でした。

この歳になってまたひとつ勉強になりました。

例)