我一直在到处寻找如何使用两个现有文件执行此操作,看起来所有文档都是关于创建新文件的。我想获取其中一个文件并将第二个文件作为新工作表添加到其中,然后将其保存到服务器。 我一直在尝试这样无济于事:
$file="test.xls";
$file2="test2.xls";
$outputFile = "final.xls";
$phpExcel = new PHPExcel($file);
$phpExcel->getActiveSheet();
$phpExcel->setActiveSheetIndex(0);
$phpExcel->addSheet($file2);
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$outputFile");
header("Cache-Control: max-age=0");
$objWriter = PHPExcel_IOFactory::createWriter($phpExcel, "Excel5");
file_put_contents($outputFile, $objWriter);
如有任何帮助,我们将不胜感激。对 PHP 很陌生。
最佳答案
现在没有人阅读过文档吗?在名为 /Documentation
的文件夹中有一个关于将文件读取到 PHPExcel 对象的完整文档(称为 PHPExcel 用户文档 - 读取电子表格文件
),以及数十个示例(/Documentation/Examples/Reader
文件夹是个不错的地方),它们都没有使用 new PHPExcel($file)
。也没有任何示例或任何文档说明在保存时使用 file_put_contents()。
$file1="test.xls";
$file2="test2.xls";
$outputFile = "final.xls";
// Files are loaded to PHPExcel using the IOFactory load() method
$objPHPExcel1 = PHPExcel_IOFactory::load($file1);
$objPHPExcel2 = PHPExcel_IOFactory::load($file2);
// Copy worksheets from $objPHPExcel2 to $objPHPExcel1
foreach($objPHPExcel2->getAllSheets() as $sheet) {
$objPHPExcel1->addExternalSheet($sheet)
}
// Save $objPHPExcel1 to browser as an .xls file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel1, "Excel5");
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$outputFile");
header("Cache-Control: max-age=0");
$objWriter->save('php://output');
关于php - 将两个或多个 xls 文件合并为工作表 PHPExcel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16801732/