2011-09-02 62 views
10

我使用PHPExcel来动态生成订单收据。如何使用PHPExcel加入Excel文档?

我希望能够生成包含所有订单收据(每个工作表一个)的“汇总”Excel文件。

有没有办法将两个(或多个)Excel文档“加入”到PHPExcel中?

+0

你期望哪种行为?也就是说,你想如何“加入”你的文件(将每张表格复制到一个文件中...)? – JMax

+0

@JMax,是例如合并doc1.xlsx,doc2.xslx,doc3.xslx到master_doc.xslx(其中包含三个选项卡,每个文件doc1,doc2和doc3一个) – mike23

回答

8

在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));

+1

感谢,作品像一个魅力与最小行码。 PHPExcel是一个令人难以置信的图书馆! – mike23