我曾尝试将phpexcel与我自己的模板文件一起使用。phpexcel 加载文件并将数据写入某些单元格 A2、A3、A4,例如 .. 并使用新数据打开一个输出文件。
我的模板文件有图表内置.. 我想要 phpexcel 做的就是在单元格中填充值并且不要触摸图表。并且,打开新文件。(请注意,我不想在代码中制作图表。我希望图表以与我最初创建的相同格式预先存在于我的模板中)。只有数据应该更新。
但是,当我尝试这样做时......图表本身从结果文件中丢失了。在尝试了各种方法之后..仍然失败。
而且,我从http://phpexcel.codeplex.com/discussions/397263找到了以下代码
require_once 'Classes/PHPExcel.php';
/** PHPExcel_IOFactory */
include 'Classes/PHPExcel/IOFactory.php';
$target ='Results/';
$fileType = 'Excel2007';
$InputFileName = $target.'Result.xlsx';
$OutputFileName = $target . '_Result.xlsx';
//Read the file (including chart template)
$objReader = PHPExcel_IOFactory::createReader($fileType);
$objReader->setIncludeCharts(TRUE);
$objPHPExcel = $objReader->load($InputFileName);
//Change the file
$objPHPExcel->setActiveSheetIndex(0)
// Add data
->setCellValue('C3','10' )
->setCellValue('C4','20' )
->setCellValue('C5','30')
->setCellValue('C5','40' );
//Write the file (including chart)
PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
$objWriter->setIncludeCharts(TRUE);
$objWriter->save($OutputFileName);
上面的代码在 excel 2010 中工作,现在让我的图表保持完好......但是当我尝试使用文件类型“Excel5”时它仍然不起作用。
它抛出以下错误:
Fatal error: Call to undefined method PHPExcel_Reader_Excel5::setIncludeCharts()
in D:\IT\bfstools\PHPExcel\MyExamples\test1.php on line 16
请提供一个简单的解决方案,我希望我的模板文件可以与 .xls 和 .xlsx 一起使用,并且模板文件中的所有原始图表都应该保持不变。我不希望图表从结果文件中删除它。我也不打算使用 phpexcel 代码创建图表。(当excel可以为您完成所有工作时,为什么还要编写不必要的代码)。
我想要最简单的方法,即使用模板中的所有内容并用新数据填充单元格。而且,我在模板中现有的图表会自动上线。我不想编写不必要的代码,而我可以安全地依赖 Excel 模板和图表功能。
请帮忙。