我在玩弄一个PHP - MS Excel集成这些天。我的任务 是打开现有电子表格,添加一些数据并保存填充 电子表格为一个新文件。基本上排序的模板填充引擎, eventhough XLSX文件被用作模板。

我看着 PHPExcel 这似乎是相当不错的框架。为了 实现概念证明我做了以下(减少到最低限度 说明什么,我需要做的)必需的:

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);  
$objPHPExcel = $objReader->load("myTemplateToFill.xlsx");

    //Here comes the actual filling
$objWorksheet = $objPHPExcel->createSheet();
$objWorksheet->setTitle('Apple')    ;
$objWorksheet->setCellValue('A1', 'Banana');    
$objPHPExcel->setActiveSheetIndex(0);

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save('myFilledTemplate.xlsx');

运行此我发现一个新的文件被创建,我DAAT插入但可悲的是与 所有的现有格式的丢失。

所以,问题是,有没有一种方法,使PHPExcel保持这些formattigs新 文件?或者再进一步:是否有可能保持图表等,在模板文件 和填补这些我尝试的方式吗?

在此先感谢您的所有共享体验!

ķ

有帮助吗?

解决方案

哼,你正在创建一个新的工作表,至极没有格式作为默认值。我觉得你有你的价值添加到现有的表?

$objPHPExcel->setActiveSheetIndex(0); // index of sheet
$workSheet = $objPHPExcel->getActiveSheet();
$workSheet->setTitle('Pflaume');

其他提示

格式,是因为这条线的丢失 $ objReader-> setReadDataOnly(真); 它告诉读者阅读的只有的从模板的工作簿中的数据,而不是格式。

您还需要修改现有工作表中的数据。创建一个新的工作表将创建一个未格式化的工作表。可替换地,可以使用PHPExcel_WorkSheet copy()方法

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top