phpexcel将选定的工作表导出为pdf
Posted
技术标签:
【中文标题】phpexcel将选定的工作表导出为pdf【英文标题】:phpexcel export selected sheet to pdf 【发布时间】:2016-09-01 20:10:48 【问题描述】:我有一个包含 4 张纸的 xlsx 文件。使用下面的代码,我只能导出第一张工作表。
我希望能够按名称将任何工作表导出为 pdf。
以下是我目前所做的:
$export_file = 'export.pdf';
$import_file = './media/migration/import.xlsx';
$sheet_name = 'Menu_A';
$rendererName = phpExcel_Settings::PDF_RENDERER_MPDF;
$rendererLibraryPath = '/var/www/public/vendor/mpdf/mpdf';
$object = PHPExcel_IOFactory::load($import_file);
$object->setActiveSheetIndexByName($sheet_name);
PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath);
$objWriter = PHPExcel_IOFactory::createWriter($object, 'PDF');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="' . $export_file . '"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
【问题讨论】:
可能需要循环播放床单 @nogad 如果我有太多床单怎么办。 不确定您是否可以拥有“多个”工作表。如果你想要 1 个 pdf,你应该先合并数据。对于多个 pdf(您不能将它们发送到浏览器),请继续循环 @nogad 我的 excel 文件中有很多工作表,我只想将其中一张导出为 pdf。我想按名称或索引选择那个,而不是循环直到我点击它。 然后我看不到问题。您在上面的代码中有$sheet_name = 'Menu_A';
,只需根据需要更改它
【参考方案1】:
默认情况下,只会为 html/pdf 输出生成第一个工作表,除非您在保存之前告诉 Writer 要显示哪个工作表:
$objWriter->setSheetIndex(1);
(第二张纸)
$objWriter->setSheetIndex($object->getActiveSheetIndex());
(对于当前活动的工作表)
$objWriter->setSheetIndex($object->getIndex($object->getSheetByName($sheet_name)));
(对于命名工作表)
【讨论】:
以上是关于phpexcel将选定的工作表导出为pdf的主要内容,如果未能解决你的问题,请参考以下文章
将 Excel 工作表导出到 PDF 文件时出现奇怪的 Powershell 行为