Как я могу присоединиться к документам Excel, используя PHPExcel? - PullRequest
11 голосов
/ 02 сентября 2011

Я использую PHPExcel для динамического генерирования квитанций заказа.

Я хотел бы иметь возможность создать "сводный" файл Excel, содержащий все квитанции заказа (по одному нарабочий лист).

Есть ли способ "объединить" два (или более) документов Excel в один с помощью PHPExcel?

1 Ответ

8 голосов
/ 07 сентября 2011

В Excel «вкладки» называются «рабочими листами».Вы можете создать рабочую книгу Excel с несколькими рабочими листами в PHPExcel.

Для справки, другой ответ по 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 ) );.

...