php - PhpSpreadsheet:表格在此过程中丢失
问题描述
我有一个用 PhpSpreadsheet 读写的 Excel 文件。我所有的表格和参考资料都在这个过程中消失了。是否需要将标志设置为 true/false,或者表格只是 PhpSpreadsheet 无法处理的东西?查看导出前后的屏幕截图。
我已经尝试了这些不同的真/假组合,但没有任何setIncludeCharts(true);
运气setPreCalculateFormulas(true)
我在这里遗漏了什么明显的东西吗?
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
$spreadsheet = $reader->load("template.xlsx");
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="result.xlsx"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
exit;
error_reporting(0)
如果与它有任何关系,我会压制这些通知/警告。然而,这是在 PhpSpreadsheet 代码中,我不应该真正搞砸:
Notice: Undefined offset: 2 in /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php on line 3472 Warning: trim() expects parameter 1 to be string, array given in /vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php on line 3680
我还尝试了给我这个错误的同一模板的不同版本:
Fatal error: Uncaught PhpOffice\PhpSpreadsheet\Exception: Invalid cell coordinate 1))) in vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Coordinate.php:42 Stack trace: #0 vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Coordinate.php(111): PhpOffice\PhpSpreadsheet\Cell\Coordinate::coordinateFromString('1)))') #1 vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Coordinate.php(86): PhpOffice\PhpSpreadsheet\Cell\Coordinate::absoluteCoordinate('1)))') #2 vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php(416): PhpOffice\PhpSpreadsheet\Cell\Coordinate::absoluteReference('1)))') #3 vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php(267): PhpOffice\PhpSpreadsheet\Writer\Xlsx\Workbook->writeDefinedNameForPrintArea(Object(PhpOffice\PhpSpreadsheet\Shared\XMLWriter), Object(PhpOffice\PhpS in vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Cell/Coordinate.php on line 42
解决方案
Smarttables 在后台使用数据透视表。我发现解决这个问题的唯一方法是手动设置单元格的样式。
推荐阅读
- sql - 查找唯一的天数
- algorithm - 如何求解 T(n)=T(n/4)+T(3n/4)+nlogn
- reactjs - 在 React 中通过 getBoundingClientRect 接收元素的尺寸
- javascript - 复制和事件时自动取消选择完整日历选定的插槽
- javascript - Odoo 13 甘特视图“groub_by”记录计数
- mysql - Sequelize Node JS 中的时区问题
- python - PySpark:如何将 2 个 DataFrame 与相同的列组合并生成一个具有唯一和更新行的新 DataFrame
- angular - 如何以角度实现侧面导航?
- java - 运行环境代码会导致变量值在循环中意外更改吗?
- javascript - 使用 npm link 命令时出错