我开发了一个程序,其中包括创建包含不同单元格的新 Excel 工作表。下一步是生成一个垂直条形图来显示从数据单元格中检索到的各种数据。
rangeToArray()
所有图表示例都可以正常工作,我没有遇到任何特定问题,但是每当我尝试通过调用and方法创建自己的图表时,fromArray()
工作表中都不会出现任何内容,请参阅下面的代码子集以澄清此问题:
第一步包括创建一个新的工作表,其中包含两个单元格,每个单元格有 40 个数据,之后,我通过调用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');