У меня есть 2 файла excel birds.xlsx и bees.xlsx, оба из которых имеют одинаковое количество столбцов и заголовок столбца такого же типа. Я видел, как PHPExcel делает чудеса с файлами excel, но есть ли способ объединить 2 отдельных файла в один и тот же рабочий лист и сохранить его как новый файл? Аналогия, которая приходит на ум, похожа на команду SQL UNION
.
Что-то вроде:
// Load both spreadsheet files $objPHPExcel1 = PHPExcel_IOFactory::load("birds.xlsx"); $objPHPExcel2 = PHPExcel_IOFactory::load("bees.xlsx"); // Find the last cell in the second spreadsheet $findEndDataRow = $objPHPExcel2->getActiveSheet->getHighestRow(); $findEndDataColumn = $objPHPExcel2->getActiveSheet->getHighestColumn(); $findEndData = $findEndDataColumn . $findEndDataRow; // Read all the data from second spreadsheet to a normal PHP array // skipping the headers in row 1 $beeData = $objPHPExcel2->getActiveSheet->rangeToArray('A2:' . $findEndData); // Identify the row in the first spreadsheet where we want to start // adding merged bee data without overwriting any bird data $appendStartRow = $objPHPExcel1->getActiveSheet->getHighestRow() + 1; // Add bee data from the PHP array into the bird data $objPHPExcel1->getActiveSheet->fromArray($beeData, null, 'A' . $appendStartRow); // Save the spreadsheet with the merged data $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel1, 'Excel2007'); $objWriter->save(str_replace('animals.xlsx');