【问题标题】:PHP Spreadsheet HTML won't display chartPHP电子表格HTML不会显示图表
【发布时间】:2020-08-27 18:15:11
【问题描述】:

我正在尝试以 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。

【问题讨论】:

  • 请更具体一点,你得到什么样的响应或错误,你已经尝试过什么,等等。
  • 没有错误。它以 html 格式显示表格数据,但页面上没有图表。然而,该图表存在于 .xlsx 文件中。

标签: php phpspreadsheet


【解决方案1】:

你必须设置渲染器:

Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class);

完整示例请参见示例: https://github.com/PHPOffice/PhpSpreadsheet/blob/master/samples/Chart/32_Chart_read_write_HTML.php

【讨论】:

  • 两件事,首先,为了让代码尝试渲染,我必须将作为图表起始单元格的单元格值设置为某个值。 $sheet->setCellValue('D1', ' '); 其次,我现在在设置渲染器后得到这个响应。 Uncaught Error: Class 'JpGraph\JpGraph' not found in /opt/web/common/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php:65文件在那里
  • 抱歉,我想我需要下载 JpGraph 源代码。其他渲染器是否与 html 编写器和开源兼容?我想在没有获得许可证的情况下为我的公司使用。
猜你喜欢
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多