Я использовал библиотеку PHPExcel для загрузки линейной диаграммы в экспортированном файле Excel, но она не работает в MS Office Excel. У меня есть открыть тот же файл в других инструментах, но кроме MS Office это выглядит правильно.
$excel = new \PHPExcel();
$objWorksheet = $excel->getActiveSheet();
$objWorksheet->setTitle('Worksheet');
$objWorksheet->fromArray(
array(
array('', 'Rainfall (mm)', 'Temperature (F)', 'Humidity (%)'),
array('Jan', 78, 52, 61),
array('Feb', 64, 54, 62),
array('Mar', 62, 57, 63),
array('Apr', 21, 62, 59),
array('May', 11, 75, 60),
array('Jun', 1, 75, 57),
array('Jul', 1, 79, 56),
array('Aug', 1, 79, 59),
array('Sep', 10, 75, 60),
array('Oct', 40, 68, 63),
array('Nov', 69, 62, 64),
array('Dec', 89, 57, 66),
)
);
$dataseriesLabels2 = array(new \PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // Rainfall);
$dataSeriesValues2 = array(new \PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12),);
$xAxisTickValues = array(new \PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec);
$series2 = new \PHPExcel_Chart_DataSeries(
\PHPExcel_Chart_DataSeries::TYPE_LINECHART, // plotType
\PHPExcel_Chart_DataSeries::GROUPING_STANDARD, // plotGrouping
range(0, 1), // plotOrder
$dataseriesLabels2, // plotLabel
$xAxisTickValues, // plotCategory
$dataSeriesValues2 // plotValues
);
$plotarea = new \PHPExcel_Chart_PlotArea(NULL, array($series2));
$title = new \PHPExcel_Chart_Title('Chart awesome');
$chart = new \PHPExcel_Chart('chart1', $title, null, $plotarea, true, 0, NULL,NULL );
$chart->setTopLeftPosition('F2');
$chart->setBottomRightPosition('O16');
$objWorksheet->addChart($chart);
$objWorksheet->setTitle('My Test Worksheet');
$writer = \PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->setIncludeCharts(TRUE);
$writer->save('test.xlsx');
Есть ли другой способ исправить эту проблему?