PHPExcel - 将两个文件合二为一
PHPExcel - Combine two file in one
我有两个 xlsx 文件:first.xlsx
和 second.xlsx
,我会将这两个文件合二为一,并为最后一个文件的第二部分添加颜色 (second.xlsx
)。我能做什么?
Open/load 两个文件作为两个单独的 PHPExcel 对象,并使用 addExternalSheet()
方法将工作表从第二个 PHPExcel 对象移动到第一个,然后按颜色调整并保存第一个。
$objPHPExcel1 = PHPExcel_IOFactory::load("MergeBook1.xlsx");
$objPHPExcel2 = PHPExcel_IOFactory::load("MergeBook2.xlsx");
foreach($objPHPExcel2->getSheetNames() as $sheetName) {
$sheet = $objPHPExcel2->getSheetByName($sheetName);
$sheet->setTitle($sheet->getTitle() . ' copied');
$objPHPExcel1->addExternalSheet($sheet);
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel1, 'Excel2007');
$objWriter->save('mergedBooks.xlsx');
使用 addExternalSheet()
可确保所有样式、合并等以及单元格数据都从第二个工作簿转移到第一个
您可以在合并循环之后和保存之前做任何您想要的额外样式和着色
编辑
如果您只是想将数据从一个工作簿复制到另一个工作簿,那么可以这样:
$objPHPExcel1 = PHPExcel_IOFactory::load("MergeBook1.xlsx");
$objPHPExcel2 = PHPExcel_IOFactory::load("MergeBook2.xlsx");
$objPHPExcel1->getActiveSheet()->fromArray(
$objPHPExcel2->getActiveSheet->toArray(),
null,
'A' . ($objPHPExcel1->getActiveSheet()->getHighestRow() + 1)
);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel1, 'Excel2007');
$objWriter->save('mergedBooks.xlsx');
我有两个 xlsx 文件:first.xlsx
和 second.xlsx
,我会将这两个文件合二为一,并为最后一个文件的第二部分添加颜色 (second.xlsx
)。我能做什么?
Open/load 两个文件作为两个单独的 PHPExcel 对象,并使用 addExternalSheet()
方法将工作表从第二个 PHPExcel 对象移动到第一个,然后按颜色调整并保存第一个。
$objPHPExcel1 = PHPExcel_IOFactory::load("MergeBook1.xlsx");
$objPHPExcel2 = PHPExcel_IOFactory::load("MergeBook2.xlsx");
foreach($objPHPExcel2->getSheetNames() as $sheetName) {
$sheet = $objPHPExcel2->getSheetByName($sheetName);
$sheet->setTitle($sheet->getTitle() . ' copied');
$objPHPExcel1->addExternalSheet($sheet);
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel1, 'Excel2007');
$objWriter->save('mergedBooks.xlsx');
使用 addExternalSheet()
可确保所有样式、合并等以及单元格数据都从第二个工作簿转移到第一个
您可以在合并循环之后和保存之前做任何您想要的额外样式和着色
编辑
如果您只是想将数据从一个工作簿复制到另一个工作簿,那么可以这样:
$objPHPExcel1 = PHPExcel_IOFactory::load("MergeBook1.xlsx");
$objPHPExcel2 = PHPExcel_IOFactory::load("MergeBook2.xlsx");
$objPHPExcel1->getActiveSheet()->fromArray(
$objPHPExcel2->getActiveSheet->toArray(),
null,
'A' . ($objPHPExcel1->getActiveSheet()->getHighestRow() + 1)
);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel1, 'Excel2007');
$objWriter->save('mergedBooks.xlsx');