Below is a sample piece of script which creates a multiple lines (multi - series) chart with the PHPExcel library:
$dataSeriesLabels = array();
$xAxisTickValues = array();
$dataSeriesValues = array();
$series = array();
$dataPointCount = 8 /* the count of datapoints: $by-2 to $by+5 inclusive */;
for ($i=0; $i<=4; $i++)
{
$r = 35+$i;
$dataSeriesLabels[$i] = new \PHPExcel_Chart_DataSeriesValues('String', $sheetTitle.'!$B$'.$r, NULL, 1);
$xAxisTickValues[$i] = new \PHPExcel_Chart_DataSeriesValues('Number', $sheetTitle.'!$C$34:$J$34', NULL, $dataPointCount);
$dataSeriesValues[$i] = new \PHPExcel_Chart_DataSeriesValues('Number', $sheetTitle.'!$C$'.$r.':$J$'.$r, NULL, $dataPointCount);
}
$series[0] = new \PHPExcel_Chart_DataSeries(
\PHPExcel_Chart_DataSeries::TYPE_LINECHART, // plotType
\PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping
range(0, count($dataSeriesValues) - 1), // plotOrder
$dataSeriesLabels, // plotLabel
$xAxisTickValues, // plotCategory
$dataSeriesValues // plotValues
);
$series[0]->setPlotDirection(\PHPExcel_Chart_DataSeries::DIRECTION_HORIZONTAL);
// Set the series in the plot area
$plotarea = new \PHPExcel_Chart_PlotArea(NULL, $series);
// Set the chart legend
$legend = new \PHPExcel_Chart_Legend(\PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false);
$title = new \PHPExcel_Chart_Title('');
// Create the chart
$chart = new \PHPExcel_Chart(
'chart1', // name
$title, // title
$legend, // legend
$plotarea, // plotArea
true, // plotVisibleOnly
0, // displayBlanksAs
NULL, // xAxisLabel
NULL // yAxisLabel
);
$chart->setTopLeftPosition('L31');
$chart->setBottomRightPosition('AC43');
$objWorksheet->addChart($chart);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$fname.'"');
header('Cache-Control: max-age=0');
// Do your stuff here
$writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
//PHPExcel_Writer_Excel2007
$writer->setIncludeCharts(TRUE);
$writer->save('php://output');
Niciun comentariu:
Trimiteți un comentariu