diff --git a/samples/Chart/32_Chart_read_write.php b/samples/Chart/32_Chart_read_write.php index ba711c06e..a1f2f5468 100644 --- a/samples/Chart/32_Chart_read_write.php +++ b/samples/Chart/32_Chart_read_write.php @@ -52,6 +52,7 @@ foreach ($inputFileNames as $inputFileName) { if ($groupCount == 1) { $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); $helper->log($indentation . ' ' . $chartType); + $helper->renderChart($chart, __FILE__); } else { $chartTypes = []; for ($i = 0; $i < $groupCount; ++$i) { @@ -61,10 +62,12 @@ foreach ($inputFileNames as $inputFileName) { if (count($chartTypes) == 1) { $chartType = 'Multiple Plot ' . array_pop($chartTypes); $helper->log($indentation . ' ' . $chartType); + $helper->renderChart($chart, __FILE__); } elseif (count($chartTypes) == 0) { $helper->log($indentation . ' *** Type not yet implemented'); } else { $helper->log($indentation . ' Combination Chart'); + $helper->renderChart($chart, __FILE__); } } } diff --git a/samples/Chart/33_Chart_create_area.php b/samples/Chart/33_Chart_create_area.php index 95d9149c6..c6e349aa1 100644 --- a/samples/Chart/33_Chart_create_area.php +++ b/samples/Chart/33_Chart_create_area.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -95,10 +94,7 @@ $chart->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_area_2.php b/samples/Chart/33_Chart_create_area_2.php index 7761caa63..7d98ef445 100644 --- a/samples/Chart/33_Chart_create_area_2.php +++ b/samples/Chart/33_Chart_create_area_2.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Theme as SpreadsheetTheme; @@ -98,10 +97,7 @@ $chart->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_bar.php b/samples/Chart/33_Chart_create_bar.php index a05cf9278..a05af8cf4 100644 --- a/samples/Chart/33_Chart_create_bar.php +++ b/samples/Chart/33_Chart_create_bar.php @@ -1,15 +1,8 @@ getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_bar_custom_colors.php b/samples/Chart/33_Chart_create_bar_custom_colors.php index 75f2306b7..eab185bbb 100644 --- a/samples/Chart/33_Chart_create_bar_custom_colors.php +++ b/samples/Chart/33_Chart_create_bar_custom_colors.php @@ -7,7 +7,6 @@ use PhpOffice\PhpSpreadsheet\Chart\Layout; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -102,6 +101,8 @@ $chart1->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart1); +$helper->renderChart($chart1, __FILE__); + // Set the Labels for each data series we want to plot // Datatype // Cell reference for data @@ -174,10 +175,7 @@ $chart2->setBottomRightPosition('P20'); // Add the chart to the worksheet $worksheet->addChart($chart2); +$helper->renderChart($chart2, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_bar_labels_lines.php b/samples/Chart/33_Chart_create_bar_labels_lines.php index 970d632c3..b3eab089d 100644 --- a/samples/Chart/33_Chart_create_bar_labels_lines.php +++ b/samples/Chart/33_Chart_create_bar_labels_lines.php @@ -10,7 +10,6 @@ use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Properties; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -127,6 +126,8 @@ $chart1->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart1); +$helper->renderChart($chart1, __FILE__); + // Set the Labels for each data series we want to plot // Datatype // Cell reference for data @@ -200,10 +201,7 @@ $chart2->setBottomRightPosition('P20'); // Add the chart to the worksheet $worksheet->addChart($chart2); +$helper->renderChart($chart2, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_bar_stacked.php b/samples/Chart/33_Chart_create_bar_stacked.php index bb2d8f6d6..d0d68cae9 100644 --- a/samples/Chart/33_Chart_create_bar_stacked.php +++ b/samples/Chart/33_Chart_create_bar_stacked.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -98,10 +97,7 @@ $chart->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_bubble.php b/samples/Chart/33_Chart_create_bubble.php index 5efcda713..5f0475b98 100644 --- a/samples/Chart/33_Chart_create_bubble.php +++ b/samples/Chart/33_Chart_create_bubble.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -112,14 +111,12 @@ $chart->setBottomRightPosition('M15'); // Add the chart to the worksheet $worksheet->addChart($chart); + +$helper->renderChart($chart, __FILE__); + $worksheet->getColumnDimension('A')->setAutoSize(true); $worksheet->getColumnDimension('B')->setAutoSize(true); $worksheet->getColumnDimension('C')->setAutoSize(true); // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_column.php b/samples/Chart/33_Chart_create_column.php index 68aa983d5..784adf6e9 100644 --- a/samples/Chart/33_Chart_create_column.php +++ b/samples/Chart/33_Chart_create_column.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -98,10 +97,7 @@ $chart->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_column_2.php b/samples/Chart/33_Chart_create_column_2.php index 96f5e316d..d21e21b18 100644 --- a/samples/Chart/33_Chart_create_column_2.php +++ b/samples/Chart/33_Chart_create_column_2.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -107,10 +106,7 @@ $chart->setBottomRightPosition('P20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_composite.alternate.php b/samples/Chart/33_Chart_create_composite.alternate.php index c654ad201..799dbbc8a 100644 --- a/samples/Chart/33_Chart_create_composite.alternate.php +++ b/samples/Chart/33_Chart_create_composite.alternate.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -154,10 +153,7 @@ $chart->setBottomRightPosition('O16'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_composite.php b/samples/Chart/33_Chart_create_composite.php index b29524202..fb440648a 100644 --- a/samples/Chart/33_Chart_create_composite.php +++ b/samples/Chart/33_Chart_create_composite.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -151,10 +150,7 @@ $chart->setBottomRightPosition('O16'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_line.php b/samples/Chart/33_Chart_create_line.php index fdc974dc2..11027cd8d 100644 --- a/samples/Chart/33_Chart_create_line.php +++ b/samples/Chart/33_Chart_create_line.php @@ -7,7 +7,6 @@ use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Properties; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -98,10 +97,7 @@ $chart->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_line_dateaxis.php b/samples/Chart/33_Chart_create_line_dateaxis.php index 0b2bc2b23..e5296d1de 100644 --- a/samples/Chart/33_Chart_create_line_dateaxis.php +++ b/samples/Chart/33_Chart_create_line_dateaxis.php @@ -4,7 +4,6 @@ namespace PhpOffice\PhpSpreadsheet\Chart; use DateTime; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Shared\Date as SharedDate; use PhpOffice\PhpSpreadsheet\Spreadsheet; @@ -330,15 +329,13 @@ $chart->setRoundedCorners(true); // Rounded corners in Chart Outline // Add the chart to the worksheet $chartSheet $chartSheet->addChart($chart); + +$helper->renderChart($chart, __FILE__); + $spreadsheet->setActiveSheetIndex(1); // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); $spreadsheet->disconnectWorksheets(); function dateRange(int $nrows, Spreadsheet $wrkbk): array diff --git a/samples/Chart/33_Chart_create_multiple_charts.php b/samples/Chart/33_Chart_create_multiple_charts.php index 3032bc28f..57ede8063 100644 --- a/samples/Chart/33_Chart_create_multiple_charts.php +++ b/samples/Chart/33_Chart_create_multiple_charts.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -95,6 +94,8 @@ $chart1->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart1); +$helper->renderChart($chart1, __FILE__); + // Set the Labels for each data series we want to plot // Datatype // Cell reference for data @@ -170,10 +171,7 @@ $chart2->setBottomRightPosition('P20'); // Add the chart to the worksheet $worksheet->addChart($chart2); +$helper->renderChart($chart2, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_pie.php b/samples/Chart/33_Chart_create_pie.php index 4b35b24e5..47f5edaef 100644 --- a/samples/Chart/33_Chart_create_pie.php +++ b/samples/Chart/33_Chart_create_pie.php @@ -7,7 +7,6 @@ use PhpOffice\PhpSpreadsheet\Chart\Layout; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -96,6 +95,8 @@ $chart1->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart1); +$helper->renderChart($chart1, __FILE__); + // Set the Labels for each data series we want to plot // Datatype // Cell reference for data @@ -166,10 +167,7 @@ $chart2->setBottomRightPosition('P20'); // Add the chart to the worksheet $worksheet->addChart($chart2); +$helper->renderChart($chart2, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_pie_custom_colors.php b/samples/Chart/33_Chart_create_pie_custom_colors.php index 91f7e51b2..e056b2456 100644 --- a/samples/Chart/33_Chart_create_pie_custom_colors.php +++ b/samples/Chart/33_Chart_create_pie_custom_colors.php @@ -7,7 +7,6 @@ use PhpOffice\PhpSpreadsheet\Chart\Layout; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -102,6 +101,8 @@ $chart1->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart1); +$helper->renderChart($chart1, __FILE__); + // Set the Labels for each data series we want to plot // Datatype // Cell reference for data @@ -174,10 +175,7 @@ $chart2->setBottomRightPosition('P20'); // Add the chart to the worksheet $worksheet->addChart($chart2); +$helper->renderChart($chart2, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_radar.php b/samples/Chart/33_Chart_create_radar.php index 59a8a5d9d..c73731d7c 100644 --- a/samples/Chart/33_Chart_create_radar.php +++ b/samples/Chart/33_Chart_create_radar.php @@ -7,7 +7,6 @@ use PhpOffice\PhpSpreadsheet\Chart\Layout; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -108,10 +107,7 @@ $chart->setBottomRightPosition('M15'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_scatter.php b/samples/Chart/33_Chart_create_scatter.php index 9a54c18b1..367e3c2ce 100644 --- a/samples/Chart/33_Chart_create_scatter.php +++ b/samples/Chart/33_Chart_create_scatter.php @@ -6,7 +6,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -92,10 +91,7 @@ $chart->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_scatter2.php b/samples/Chart/33_Chart_create_scatter2.php index 700ee37d1..8662d88a2 100644 --- a/samples/Chart/33_Chart_create_scatter2.php +++ b/samples/Chart/33_Chart_create_scatter2.php @@ -10,7 +10,6 @@ use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Properties; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -185,11 +184,7 @@ $chart->setBottomRightPosition('P20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$spreadsheet->disconnectWorksheets(); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_scatter3.php b/samples/Chart/33_Chart_create_scatter3.php index 899fca792..3b8c5e083 100644 --- a/samples/Chart/33_Chart_create_scatter3.php +++ b/samples/Chart/33_Chart_create_scatter3.php @@ -9,7 +9,6 @@ use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Properties; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -182,11 +181,7 @@ $chart->setBottomRightPosition('P20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$spreadsheet->disconnectWorksheets(); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_scatter4.php b/samples/Chart/33_Chart_create_scatter4.php index d42933b69..58f2ddd8a 100644 --- a/samples/Chart/33_Chart_create_scatter4.php +++ b/samples/Chart/33_Chart_create_scatter4.php @@ -7,7 +7,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -121,10 +120,7 @@ $chart->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_scatter5_trendlines.php b/samples/Chart/33_Chart_create_scatter5_trendlines.php index dcee3e14c..f58aadaf7 100644 --- a/samples/Chart/33_Chart_create_scatter5_trendlines.php +++ b/samples/Chart/33_Chart_create_scatter5_trendlines.php @@ -10,7 +10,6 @@ use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Properties; use PhpOffice\PhpSpreadsheet\Chart\Title; use PhpOffice\PhpSpreadsheet\Chart\TrendLine; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -174,6 +173,8 @@ $chartSheet = $spreadsheet->getSheetByName('Scatter Chart'); // Add the chart to the worksheet $chartSheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + // ------------ Demonstrate Trendlines for metric3 values in a new chart ------------ $dataSeriesLabels = [ @@ -263,12 +264,10 @@ $chart->setBottomRightPosition('P25'); // Add the chart to the worksheet $chartSheet $chartSheet->addChart($chart); + +$helper->renderChart($chart, __FILE__); + $spreadsheet->setActiveSheetIndex(1); // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_scatter6_value_xaxis.php b/samples/Chart/33_Chart_create_scatter6_value_xaxis.php index dccad9cab..94f602a92 100644 --- a/samples/Chart/33_Chart_create_scatter6_value_xaxis.php +++ b/samples/Chart/33_Chart_create_scatter6_value_xaxis.php @@ -9,7 +9,6 @@ use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Properties; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; require __DIR__ . '/../Header.php'; @@ -126,12 +125,10 @@ $chart->setBottomRightPosition('K22'); // Add the chart to the worksheet $chartSheet $chartSheet->addChart($chart); + +$helper->renderChart($chart, __FILE__); + $spreadsheet->setActiveSheetIndex(1); // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/33_Chart_create_stock.php b/samples/Chart/33_Chart_create_stock.php index 3195b5ace..75ee44f4e 100644 --- a/samples/Chart/33_Chart_create_stock.php +++ b/samples/Chart/33_Chart_create_stock.php @@ -8,7 +8,6 @@ use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; use PhpOffice\PhpSpreadsheet\Chart\Legend as ChartLegend; use PhpOffice\PhpSpreadsheet\Chart\PlotArea; use PhpOffice\PhpSpreadsheet\Chart\Title; -use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; @@ -111,12 +110,10 @@ $chart->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart); + +$helper->renderChart($chart, __FILE__); + $worksheet->setSelectedCells('G2'); // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/34_Chart_update.php b/samples/Chart/34_Chart_update.php index 5d725c494..f5e695591 100644 --- a/samples/Chart/34_Chart_update.php +++ b/samples/Chart/34_Chart_update.php @@ -32,9 +32,4 @@ $worksheet->fromArray( ); // Save Excel 2007 file -$filename = $helper->getFilename(__FILE__); -$writer = new XlsxWriter($spreadsheet); -$writer->setIncludeCharts(true); -$callStartTime = microtime(true); -$writer->save($filename); -$helper->logWrite($writer, $filename, $callStartTime); +$helper->write($spreadsheet, __FILE__, ['Xlsx'], true); diff --git a/samples/Chart/35_Chart_render.php b/samples/Chart/35_Chart_render.php index f6dfeb463..7b1e4ed97 100644 --- a/samples/Chart/35_Chart_render.php +++ b/samples/Chart/35_Chart_render.php @@ -72,17 +72,17 @@ foreach ($inputFileNames as $inputFileName) { } $helper->log(' ' . $chartName . ' - ' . $caption); - $jpegFile = $helper->getFilename('35-' . $inputFileNameShort, 'png'); + $pngFile = $helper->getFilename('35-' . $inputFileNameShort, 'png'); if ($i !== 0) { - $jpegFile = substr($jpegFile, 0, -3) . "$i.png"; + $pngFile = substr($pngFile, 0, -3) . "$i.png"; } - if (file_exists($jpegFile)) { - unlink($jpegFile); + if (file_exists($pngFile)) { + unlink($pngFile); } try { - $chart->render($jpegFile); - $helper->log('Rendered image: ' . $jpegFile); + $chart->render($pngFile); + $helper->log('Rendered image: ' . $pngFile); } catch (Exception $e) { $helper->log('Error rendering chart: ' . $e->getMessage()); } diff --git a/samples/templates/chartSpreadsheet.php b/samples/templates/chartSpreadsheet.php index a5b1b8824..b43289d15 100644 --- a/samples/templates/chartSpreadsheet.php +++ b/samples/templates/chartSpreadsheet.php @@ -95,4 +95,6 @@ $chart->setBottomRightPosition('H20'); // Add the chart to the worksheet $worksheet->addChart($chart); +$helper->renderChart($chart, __FILE__); + return $spreadsheet; diff --git a/src/PhpSpreadsheet/Helper/Sample.php b/src/PhpSpreadsheet/Helper/Sample.php index 31ad46a4e..0e6a427d1 100644 --- a/src/PhpSpreadsheet/Helper/Sample.php +++ b/src/PhpSpreadsheet/Helper/Sample.php @@ -2,7 +2,9 @@ namespace PhpOffice\PhpSpreadsheet\Helper; +use PhpOffice\PhpSpreadsheet\Chart\Chart; use PhpOffice\PhpSpreadsheet\IOFactory; +use PhpOffice\PhpSpreadsheet\Settings; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use PhpOffice\PhpSpreadsheet\Writer\IWriter; @@ -12,6 +14,7 @@ use RecursiveRegexIterator; use ReflectionClass; use RegexIterator; use RuntimeException; +use Throwable; /** * Helper class to be used in sample code. @@ -120,7 +123,7 @@ class Sample * @param string $filename * @param string[] $writers */ - public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Xlsx', 'Xls']): void + public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Xlsx', 'Xls'], bool $withCharts = false): void { // Set active sheet index to the first sheet, so Excel opens this as the first sheet $spreadsheet->setActiveSheetIndex(0); @@ -129,6 +132,9 @@ class Sample foreach ($writers as $writerType) { $path = $this->getFilename($filename, mb_strtolower($writerType)); $writer = IOFactory::createWriter($spreadsheet, $writerType); + if ($writerType === 'Xlsx' && $withCharts === true) { + $writer->setIncludeCharts(true); + } $callStartTime = microtime(true); $writer->save($path); $this->logWrite($writer, $path, /** @scrutinizer ignore-type */ $callStartTime); @@ -165,10 +171,8 @@ class Sample * * @param string $filename * @param string $extension - * - * @return string */ - public function getFilename($filename, $extension = 'xlsx') + public function getFilename($filename, $extension = 'xlsx'): string { $originalExtension = pathinfo($filename, PATHINFO_EXTENSION); @@ -201,6 +205,28 @@ class Sample echo($this->isCli() ? date('H:i:s ') : '') . $message . $eol; } + public function renderChart(Chart $chart, string $fileName): void + { + if ($this->isCli() === true) { + return; + } + + Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class); + + $fileName = $this->getFilename($fileName, 'png'); + + try { + $chart->render($fileName); + $this->log('Rendered image: ' . $fileName); + $imageData = file_get_contents($fileName); + if ($imageData !== false) { + echo '
'; + } + } catch (Throwable $e) { + $this->log('Error rendering chart: ' . $e->getMessage() . PHP_EOL); + } + } + public function titles(string $category, string $functionName, ?string $description = null): void { $this->log(sprintf('%s Functions:', $category));