问题描述
我正在尝试以HTML显示在PHP电子表格中创建的图表。保存到xlsx可以成功。
我正在直接从github上的示例中使用图表创建代码。 https://github.com/PHPOffice/PhpSpreadsheet/blob/master/samples/templates/chartSpreadsheet.php
$writer = new \PHPOffice\PHPSpreadsheet\Writer\Html_Bootstrap($spreadsheet);
$writer->setEmbedImages(true);
$writer->writeallSheets();
$html_writer->setIncludeCharts(true);
echo $html_writer->generateHTMLAll(); //shows table but no chart
$spreadsheet->setActiveSheetIndex(0);
$writer = new Xlsx($spreadsheet);
$writer->setIncludeCharts(true);
$writer->save('test.xlsx'); //saves file with chart
更新:
我已将问题跟踪到PHPSpreadsheet / Writer / Html.PHP的第738行
无法渲染。我假设Settings::getRenderer()
返回null。
解决方法
您必须设置渲染器:
Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class);
有关完整示例,请参见示例: https://github.com/PHPOffice/PhpSpreadsheet/blob/master/samples/Chart/32_Chart_read_write_HTML.php