さまざまなセルを含む新しい Excel ワークシートを作成するプログラムを開発しました。次のステップは、縦棒グラフを生成して、データ セルから取得したさまざまなデータを表示することです。
すべてのグラフの例は正常に機能し、特定の問題は発生しませんが、メソッドrangeToArray()
とfromArray()
メソッドを呼び出して独自のグラフを作成しようとすると、ワークシートに何も表示されません。この問題を明確にするために、以下のコードのサブセットを参照してください。
最初のステップは、セルごとに 40 データの 2 つのセルを含む新しいワークシートを作成することですrangeToArray()
。その後、メソッドを呼び出してこれらのセルからデータを取得します。最後のステップは、fromArray()
メソッドを呼び出してこれらのデータを使用してグラフを作成することですが、機能しません。グラフは空のままです。タイトルとyAxisLabel
.
メソッドに問題があると思われますが、そのfromArray()
理由がわかりません。このアプローチを使用して同様の動作例を教えてください。前もって感謝します
$retrieve_data = array();
$retrieve_data = $worksheet->rangetoArray("D8:E48",null,null,null);
$worksheet = $objPHPExcel->getActiveSheet();
$objWorksheet = $worksheet;
$objWorksheet->fromArray($retrieve_data, NULL, 'D8', false);
$dataseriesLabels = array( new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$8', null, 1), new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$E$8', null, 1),);
$xAxisTickValues = array( new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$8:$D$27', null, 20),);
$dataSeriesValues = array( new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$8:$D$27', null, 20), new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$E$8:$E$27', null, 20),);
$series = new PHPExcel_Chart_DataSeries( PHPExcel_Chart_DataSeries::TYPE_BARCHART, plotType PHPExcel_Chart_DataSeries::GROUPING_STANDARD, range(0, count($dataSeriesValues)-1), $dataseriesLabels, $xAxisTickValues, $dataSeriesValues);
$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
$plotarea = new PHPExcel_Chart_PlotArea(null, array($series));
$legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, null, false);
$title = new PHPExcel_Chart_Title('Test Column Chart');
$yAxisLabel = new PHPExcel_Chart_Title('Value');
$chart = new PHPExcel_Chart( 'chart1', $title, $legend, $plotarea, true, 0, null, $yAxisLabel);
$chart->setTopLeftPosition('G2');
$chart->setBottomRightPosition('S20');
$objWorksheet->addChart($chart);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="BAL_Delhaize2012.xlsx"');
header('Cache-Control: max-age=0');
objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->setIncludeCharts(TRUE);
$objWriter->save('php://output');