使用 PHP 将 excel 转换为 pdf
Converting excel to pdf using PHP
我正在使用 PHPExcel 创建一个 excel 文件!我需要将其另存为 .xlsx 文件并拥有一个 .pdf 文件
使用 PHPExcel,我的 pdf 以一种奇怪的格式出现,如下所示:
Result
但我想要这样的东西(这是手动生成的,"save as pdf"):
What I Want
您知道将 excel 转换为 pdf 的简单方法吗?
$objReader = \PHPExcel_IOFactory::createReader("Excel2007");
$objPHPExcel = $objReader->load(Some_Path);
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()
->setCellValue('B8', "testing");
//Write Excel
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('testing.xlsx');
// Write PDF
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('testing.pdf');
如果 Windows PC 使用 PHP,请考虑 COM interface 到 Excel 对象库。这是一个仅 Windows 的扩展,通常随 PHP 安装在 PC 上。
这种方法几乎可以让您做 Excel VBA 可以做的任何事情,包括调用 ExportAsFixedFormat
方法来输出 PDF 文件。请注意,此方法可以在 Workbook or Worksheet 对象上 运行(遵循 preset/default 打印页面设置),甚至 Chart 和 Range .
// EXCEL APP OBJECT
$xlapp = new COM("Excel.Application") or Die ("Did not instantiate Excel");
// WORKBOOK AND WORKSHEET OBJECTS
$wbk = $xlapp->Workbooks->Open("C:\Path\To\Workbook.xlsx");
$wks = $wbk->Worksheets(1);
// SET CELL VALUE
$wks->Range("B8")->Value = "testing";
// OUTPUT WORKSHEET TO PDF
$xlTypePDF = 0;
$xlQualityStandard = 0;
try {
$wks->ExportAsFixedFormat($xlTypePDF, "C:\Path\To\Output.pdf", $xlQualityStandard);
} catch(com_exception $e) {
echo $e->getMessage()."\n";
exit;
}
// OPEN WORKBOOK TO SCREEN
$xlapp->Visible = true;
// END PROCESS / FREE RESOURCES
$xlapp = NULL;
unset($xlapp);
我正在使用 PHPExcel 创建一个 excel 文件!我需要将其另存为 .xlsx 文件并拥有一个 .pdf 文件
使用 PHPExcel,我的 pdf 以一种奇怪的格式出现,如下所示: Result
但我想要这样的东西(这是手动生成的,"save as pdf"): What I Want
您知道将 excel 转换为 pdf 的简单方法吗?
$objReader = \PHPExcel_IOFactory::createReader("Excel2007");
$objPHPExcel = $objReader->load(Some_Path);
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()
->setCellValue('B8', "testing");
//Write Excel
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('testing.xlsx');
// Write PDF
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->save('testing.pdf');
如果 Windows PC 使用 PHP,请考虑 COM interface 到 Excel 对象库。这是一个仅 Windows 的扩展,通常随 PHP 安装在 PC 上。
这种方法几乎可以让您做 Excel VBA 可以做的任何事情,包括调用 ExportAsFixedFormat
方法来输出 PDF 文件。请注意,此方法可以在 Workbook or Worksheet 对象上 运行(遵循 preset/default 打印页面设置),甚至 Chart 和 Range .
// EXCEL APP OBJECT
$xlapp = new COM("Excel.Application") or Die ("Did not instantiate Excel");
// WORKBOOK AND WORKSHEET OBJECTS
$wbk = $xlapp->Workbooks->Open("C:\Path\To\Workbook.xlsx");
$wks = $wbk->Worksheets(1);
// SET CELL VALUE
$wks->Range("B8")->Value = "testing";
// OUTPUT WORKSHEET TO PDF
$xlTypePDF = 0;
$xlQualityStandard = 0;
try {
$wks->ExportAsFixedFormat($xlTypePDF, "C:\Path\To\Output.pdf", $xlQualityStandard);
} catch(com_exception $e) {
echo $e->getMessage()."\n";
exit;
}
// OPEN WORKBOOK TO SCREEN
$xlapp->Visible = true;
// END PROCESS / FREE RESOURCES
$xlapp = NULL;
unset($xlapp);