【问题标题】:How can I join Excel documents using PHPExcel?如何使用 PHPExcel 加入 Excel 文档?
【发布时间】:2011-11-09 07:35:45
【问题描述】:

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

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

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

【问题讨论】:

  • 您期望哪种行为?意思是,你想如何“加入”你的文件(将每张纸复制到一个文件......)?
  • @JMax,是的,例如将 doc1.xlsx、doc2.xslx、doc3.xslx 合并到 master_doc.xslx 中(其中包含三个选项卡,每个文件 doc1、doc2 和 doc3 一个)

标签: php tabs phpexcel worksheet


【解决方案1】:

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

作为参考,SO 上的另一个答案是an easy-to-follow guide on how to add additional Worksheets to an existing workbook

This post on 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 ) );

【讨论】:

  • 谢谢,用最少的代码行就像一个魅力。 PHPExcel 是一个令人难以置信的库!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多