質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
PhpSpreadsheet

PhpSpreadsheetは、PHPExcelの後継であるPHPライブラリです。新規Excelファイルの作成や既存Excelファイルの読み書き、ファイル編集など一連の操作を無償で行うことができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

261閲覧

PhpSpreadsheet 棒グラフ 棒の先端に数値を表示させたい。

akooooo

総合スコア4

PhpSpreadsheet

PhpSpreadsheetは、PHPExcelの後継であるPHPライブラリです。新規Excelファイルの作成や既存Excelファイルの読み書き、ファイル編集など一連の操作を無償で行うことができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2024/06/21 06:08

編集2024/06/21 08:42

実現したいこと

以下環境にてPhpSpreadsheetを使用してグラフをファイル上に作成しております。
棒グラフで棒の先端に値を表示させることをは可能でしょうか?
また、Y軸の値を消すことはできますでしょうか?
追記:参考にさせていただいたサイトではグラフに目盛線が表示されていますが、
同じように作成しても目盛線が表示されませんでした。
以下のバージョンの場合は表示されないのでしょうか?

"php": "7.4.3"
”phpspreadsheet": "^1.29"

参考サイト:https://qiita.com/locomotive/items/beeec9509ef8adb79b96#%E6%A3%92%E3%82%B0%E3%83%A9%E3%83%95

<実現したいグラフイメージ>
イメージ説明

<phpSpredSheetを使用して作成した棒グラフ>
イメージ説明

発生している問題・分からないこと

PhpSpreadsheetのChart機能の使用方法

該当のソースコード

private function drawingsChart($type,$title,$labelArealist,$dataArealist,$tableArealist) { $xAxisTickValues = [ $this->drawingsChartArea($labelArealist[0],$labelArealist[1],$labelArealist[2],$labelArealist[3]), ]; $dataSeriesValues = [ $this->drawingsChartData($dataArealist[0],$dataArealist[1],$dataArealist[2],$dataArealist[3]), ]; $series = $this->drawingsChartSeries($type,$xAxisTickValues, $dataSeriesValues); $series->setPlotDirection(DataSeries::DIRECTION_COL); $objLayout = NULL; if ($type === DataSeries::TYPE_DOUGHNUTCHART) { $objLayout = new Layout(); //$objLayout->setShowLabel(TRUE); $objLayout->setShowPercent(TRUE); } $plotArea = new PlotArea($objLayout, [$series]); $title = new Title($title); $chart = new Chart( $title, // name $title, // title null, // legend $plotArea, // plotArea true, // plotVisibleOnly 0, // displayBlanksAs null, // xAxisLabel null // yAxisLabel ); $chart->setTopLeftPosition($tableArealist[0].$tableArealist[1]); $chart->setBottomRightPosition($tableArealist[2].$tableArealist[3]); return $chart; }
private function drawingsChartArea($fromColumn,$fromRow,$toColumn,$toRow) { $str = 'worksheet'; $str .= '!$'; $str .= $fromColumn; $str .= '$'; $str .= $fromRow; $str .= ':$'; $str .= $toColumn; $str .= '$'; $str .= $toRow; return new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, $str, null, 6); }
private function drawingsChartData($fromColumn,$fromRow,$toColumn,$toRow) { $str = 'worksheet'; $str .= '!$'; $str .= $fromColumn; $str .= '$'; $str .= $fromRow; $str .= ':$'; $str .= $toColumn; $str .= '$'; $str .= $toRow; return new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, $str, null, 6); }
private function drawingsChartSeries($type,$xAxisTickValues,$dataSeriesValues ) { $plotGrouping = NULL; if ($type === DataSeries::TYPE_BARCHART) { $plotGrouping = DataSeries::GROUPING_STANDARD; } return new DataSeries( $type, // plotType $plotGrouping, // plotGrouping range(0, count($dataSeriesValues) - 1), // plotOrder [], // plotLabel $xAxisTickValues, // plotCategory $dataSeriesValues // plotValues ); }

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

棒グラフの先端にvalue値を表示させる方法について記載されたサイトが特にありませんでした。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

以下を追加し表示することができました。
$objLayout = new Layout();
$objLayout->setShowVal(true);
$plotArea = new PlotArea($objLayout, [$series]);

投稿2024/06/24 08:56

akooooo

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問