Линейный график PHPexcel не работает в MS Excel - PullRequest
0 голосов
/ 20 января 2020

Я использовал библиотеку 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');

Есть ли другой способ исправить эту проблему?

...