Improve web-rendering of Chart Examples by displaying the rendered image

This commit is contained in:
MarkBaker
2023-04-12 11:13:40 +02:00
parent 86d2505925
commit 71898419ce
29 changed files with 127 additions and 187 deletions
+3
View File
@@ -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__);
}
}
}
+3 -7
View File
@@ -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);
+3 -7
View File
@@ -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);
+1 -8
View File
@@ -1,15 +1,8 @@
<?php
use PhpOffice\PhpSpreadsheet\IOFactory;
require __DIR__ . '/../Header.php';
$spreadsheet = require __DIR__ . '/../templates/chartSpreadsheet.php';
// 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);
@@ -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);
@@ -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);
@@ -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);
+4 -7
View File
@@ -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);
+3 -7
View File
@@ -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);
+3 -7
View File
@@ -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);
@@ -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);
+3 -7
View File
@@ -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);
+3 -7
View File
@@ -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);
@@ -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
@@ -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);
+5 -7
View File
@@ -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);
@@ -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);
+3 -7
View File
@@ -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);
+3 -7
View File
@@ -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);
+3 -8
View File
@@ -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);
+3 -8
View File
@@ -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);
+3 -7
View File
@@ -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);
@@ -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);
@@ -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);
+4 -7
View File
@@ -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);
+1 -6
View File
@@ -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);
+6 -6
View File
@@ -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());
}
+2
View File
@@ -95,4 +95,6 @@ $chart->setBottomRightPosition('H20');
// Add the chart to the worksheet
$worksheet->addChart($chart);
$helper->renderChart($chart, __FILE__);
return $spreadsheet;
+28 -4
View File
@@ -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,26 @@ class Sample
echo($this->isCli() ? date('H:i:s ') : '') . $message . $eol;
}
public function renderChart(Chart $chart, string $fileName): void
{
Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class);
$fileName = $this->getFilename($fileName, 'png');
try {
$chart->render($fileName);
$this->log('Rendered image: ' . $fileName);
if ($this->isCli() === false) {
$imageData = file_get_contents($fileName);
if ($imageData !== false) {
echo '<div><img src="data:image/gif;base64,' . base64_encode($imageData) . '" /></div>';
}
}
} 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));