PHPExcel,将 sheet 从一个文件复制到另一个带有样式的 xls 文件
PHPExcel, Copy sheet from one to another xls document with style
我需要使用其他文件列表创建一个 xls 文件
我是这样做的:
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$file_tmpl = $objReader->load('doc10.xls');
$file_tmpl - 生成的文件
$file1 = $objReader->load('doc11.xls');
$file1 - 复制的文件 sheet
$file1->setActiveSheetIndex(1);
$sheet = $file1->getActiveSheet();
$file_tmpl->addSheet($sheet,1);
因此,sheet 被复制,单元格样式除外:边框、字体、文本大小、文本颜色。如何将一切与风格结合起来?
谢谢。
为此,PHPExcel 内置了一种方法:addExternalSheet()
可将样式和内容从一个工作簿复制到另一个工作簿。
在PHPExcel的/Examples
文件夹中有一个脚本(43mergeWorkbooks.php
)来演示它的使用
$objPHPExcel = PHPExcel_IOFactory::load("x.xlsx");
$objPHPExcel1 = PHPExcel_IOFactory::load("y.xlsx");
foreach($objPHPExcel1->getSheetNames() as $sheetName)
{
$sheet = $objPHPExcel1->getSheetByName($sheetName);
$sheet->setTitle('Sheet'.$k);
$objPHPExcel->addExternalSheet($sheet);
unset($sheet);
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objPHPExcel->setActiveSheetIndex(0);
$file='x';
$filename = $file."_".@date("Y-m-d_H-i",time()).'.xlsx';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output'); //send it to user, of course you can save it to disk also!
exit; //done.. exiting!
PHPExcel 库已弃用。他们建议所有用户都应该迁移到它的直接继承者 PhpSpreadsheet。
在下面的link中,您将找到一个示例,说明如何将工作表从一个工作簿复制到另一个工作簿。
https://github.com/PHPOffice/PhpSpreadsheet/blob/develop/samples/Basic/43_Merge_workbooks.php
我需要使用其他文件列表创建一个 xls 文件
我是这样做的:
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$file_tmpl = $objReader->load('doc10.xls');
$file_tmpl - 生成的文件
$file1 = $objReader->load('doc11.xls');
$file1 - 复制的文件 sheet
$file1->setActiveSheetIndex(1);
$sheet = $file1->getActiveSheet();
$file_tmpl->addSheet($sheet,1);
因此,sheet 被复制,单元格样式除外:边框、字体、文本大小、文本颜色。如何将一切与风格结合起来?
谢谢。
为此,PHPExcel 内置了一种方法:addExternalSheet()
可将样式和内容从一个工作簿复制到另一个工作簿。
在PHPExcel的/Examples
文件夹中有一个脚本(43mergeWorkbooks.php
)来演示它的使用
$objPHPExcel = PHPExcel_IOFactory::load("x.xlsx");
$objPHPExcel1 = PHPExcel_IOFactory::load("y.xlsx");
foreach($objPHPExcel1->getSheetNames() as $sheetName)
{
$sheet = $objPHPExcel1->getSheetByName($sheetName);
$sheet->setTitle('Sheet'.$k);
$objPHPExcel->addExternalSheet($sheet);
unset($sheet);
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objPHPExcel->setActiveSheetIndex(0);
$file='x';
$filename = $file."_".@date("Y-m-d_H-i",time()).'.xlsx';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output'); //send it to user, of course you can save it to disk also!
exit; //done.. exiting!
PHPExcel 库已弃用。他们建议所有用户都应该迁移到它的直接继承者 PhpSpreadsheet。
在下面的link中,您将找到一个示例,说明如何将工作表从一个工作簿复制到另一个工作簿。
https://github.com/PHPOffice/PhpSpreadsheet/blob/develop/samples/Basic/43_Merge_workbooks.php