2011-09-02 39 views
10

Tôi đang sử dụng PHPExcel để tự động tạo biên nhận đơn đặt hàng.Tôi có thể tham gia tài liệu Excel bằng cách sử dụng PHPExcel như thế nào?

Tôi muốn có thể tạo tệp Excel "tóm tắt", chứa tất cả biên lai đơn hàng (một trên mỗi trang tính).

Có cách nào để "nối" hai (hoặc nhiều) tài liệu Excel vào một với PHPExcel không?

+0

bạn mong đợi hành vi nào? có nghĩa là, làm thế nào để bạn muốn "tham gia" các tập tin của bạn (sao chép mỗi tờ vào một tập tin ...)? – JMax

+0

@JMax, có ví dụ: hợp nhất doc1.xlsx, doc2.xslx, doc3.xslx vào master_doc.xslx (chứa ba tab, một cho mỗi tệp doc1, doc2 và doc3) – mike23

Trả lời

8

Trong Excel, "tab" được gọi là "trang tính". Bạn có thể tạo sổ làm việc Excel với nhiều trang tính trong PHPExcel.

Để tham khảo, một câu trả lời khác về SO có an easy-to-follow guide on how to add additional Worksheets to an existing workbook.

This post on Codeplex có ví dụ về cách thêm trang tính bên ngoài. Tôi không chắc chắn tất cả các điệu nhảy đổi tên là cần thiết mặc dù. (Liên kết Codeplex khuyến khích bạn sao chép bảng tính và sao chép bảng nhân bản để không xóa nó khỏi sổ làm việc ban đầu, nhưng tôi không nghĩ đó sẽ là vấn đề trừ khi bạn viết đầu ra vào sổ làm việc nguồn.) hãy nghĩ điều gì đó như thế này sẽ hoạt động:

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

Sau đó, bạn chỉ có thể gọi createMasterWorkbook('receipts.xlsx', array(1, 2, 3));.

+1

Cảm ơn, hoạt động như một nét duyên dáng với các đường tối thiểu mã. PHPExcel là một thư viện đáng kinh ngạc! – mike23

Các vấn đề liên quan