2011-09-02 60 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