在PHPSpreadsheet中从excel转换为pdf而不破坏设计/样式

时间:2018-08-30 05:05:35

标签: php excel pdf-generation spreadsheet phpspreadsheet

我尝试将PHPSpreadsheet导出为PDF。我所做的是将标题设置为:

header("Content-Disposition: attachment;filename=hello world.pdf");

$writer像这样:

$writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
$writer->save("php://output");

其余的代码与导出为XLSX的代码相同。似乎不喜欢样式命令,并且还会导入没有文本的单元格。我如何在Excel的单元格中创建信息的示例如下:

$sheet->setCellValue('A16', $activitiesCount)->getStyle('A16');
$sheet->getStyle('A16')->getFill()->setFillType(Fill::FILL_SOLID);
$sheet->getStyle('A16')->getFill()->getStartColor()->setARGB('d9e6fc');

这是excel中的原始版本:

enter image description here

如果我直接从excel本身将其另存为PDF,则此文件可以导出。但是,当我尝试使用我的代码进行操作时,这似乎是结果:

enter image description here

您可以看到它变得非常混乱。这是否意味着我必须以其他方式对PDF进行编程?我认为在两者之间进行更改很容易。

PS:不要介意图片之间的名称差异。我在DB中进行了测试,以了解当名称很长时它如何扩展。太漂亮了,让我告诉你。

1 个答案:

答案 0 :(得分:0)

这并不是一个很好的答案,但是如果您阅读the documentation,则会看到一条注释:

  

请注意,PDF文件格式在样式单元格,数字格式等方面有一些限制。

尝试使用mPDF以外的其他库可能会更好。在同一页面上:

  

不同的库有不同的优点和缺点。有些生成比其他格式更好的格式输出,有些比其他格式更快或使用更少的内存,而有些生成较小的.pdf文件