Как я могу присоединиться к документам Excel с помощью PHPExcel?

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

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

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

Ответ 1

В 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 ) );.