php - 将两个或多个 xls 文件合并为工作表 PHPExcel

标签 php phpexcel

我一直在到处寻找如何使用两个现有文件执行此操作,看起来所有文档都是关于创建新文件的。我想获取其中一个文件并将第二个文件作为新工作表添加到其中,然后将其保存到服务器。 我一直在尝试这样无济于事:

$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/

相关文章:

php - IMAP/PHP 中的 Thunderbird "Tags"

php - osx-lion 上的 Apache 和两个版本的 php

php - 多维数组 - 搜索值并获取子数组

PHPExcel 验证单元格是否有空值

php - 使用 phpexcel 在所有打印页面中设置页脚

hyperlink - 当用户单击链接打开 Outlook phpexcel 时,如何将电子邮件写为单元格的超链接?

php - 如何删除数组中的元素?

php - 如何在数据库的不同行中保存多个复选框值

php - 是什么导致 PHPExcel 在使用分块过滤器读取文件时使用如此多的内存?

php - 如何在不编辑库的情况下覆盖 PHPExcel 方法?