PhpExcel write/save 到现有 excel 文件

PhpExcel write/save onto existing excel file

首先,我在 Whosebug 和表单上都搜索了我的问题,但找不到确切的问题及其解决方案。 (This one is about saving HTML to existing Excel)

*** 我也看到了关于保存为新 excel 文件的相关问题的一些答案,但我的问题是我可以保存到现有的 excel 文件吗?如果可以的话,为什么我打开它时出现错误。

问题:

我有一个现有的 excel-2010 模板文件,其中包含股票代码和日期。

我 load/read 这个文件 PHPexcel (read/load 工作正常),我在一些空单元格上填入价格值,然后我试图使用以下代码保存文件。

require_once __DIR__ . '/src/Classes/PHPExcel.php';
require_once __DIR__ . '/src/Classes/PHPExcel/IOFactory.php';

// read existing excel file
$readphpexcel = PHPExcel_IOFactory::load("polimer_uzex.xlsx");

// read the worksheet named "fetched"
$fetched = $readphpexcel->getSheetByName("fetched");

// make an array from all data on the worksheet
$exceldatas = $fetched->toArray(null, true, true, true);


/// ... some cell value modifications take place here on $exceldatas


// write to excell
$fetched->fromArray($exceldatas, null, 'A1', true);
$objWriter = PHPExcel_IOFactory::createWriter($readphpexcel, 'Excel5');// Excel 2010
$objWriter->save("polimer_uzex.xlsx");

保存后,出现以下错误(“Excel 无法打开文件,因为文件格式或文件扩展名无效 ...”)

excel5 代表 xlsexcel2007 代表 xlsx

因此,将写入 excel 块更改为

$fetched->fromArray($exceldatas, null, 'A1', true);
$objWriter = PHPExcel_IOFactory::createWriter($readphpexcel, 'Excel2007');// Excel 2010
$objWriter->save("polimer_uzex.xlsx");