11

我正在使用PHPExcel动态生成订单收据。

我希望能够生成一个“摘要”Excel 文件,其中包含所有订单收据(每个工作表一个)。

有没有办法用 PHPExcel 将两个(或多个)Excel 文档“连接”成一个?

4

1 回答 1

8

在 Excel 中,“选项卡”被称为“工作表”。您可以在 PHPExcel 中创建包含多个工作表的 Excel 工作簿。

作为参考,SO 上的另一个答案有一个易于遵循的指南,介绍如何将其他工作表添加到现有工作簿

Codeplex 上的这篇文章有一个添加外部工作表的示例。不过,我不确定是否需要所有重命名舞蹈。(Codeplex 链接鼓励您克隆工作表并复制克隆的工作表,以免将其从原始工作簿中删除,但我认为这不是问题,除非您将输出写入源工作簿。)我认为这样的事情应该有效:

function getReceiptWorksheet( $receiptNumber ) {
    // Do something here to retrieve & return your existing receipt
}

function createMasterWorkbook( $filename, $receiptNumbers ) {
    $workbook= new PHPExcel();

    foreach( $receiptNumbers as $receiptNumber ){
         $worksheet = getReceiptWorksheet( $receiptNumber )
         $workbook->addExternalSheet( $worksheet );
    }

    $objWriter = new PHPExcel_Writer_Excel2007($workbook);
    $objWriter->save($filename);
}

然后你就可以打电话了createMasterWorkbook( 'receipts.xlsx', array( 1, 2, 3 ) );

于 2011-09-07T06:24:18.820 回答