【发布时间】:2015-04-24 17:14:42
【问题描述】:
我正在尝试打开一个现有的 Excel 文件,修改一些单元格并保存它。我正在使用 Excel2007 作为读写器。
输入文件大约 1 MB 大,其中包含很少的公式、受保护的数据以及隐藏的行和列以及我不修改的工作表。
我能够加载数据并在其中读取和写入一些值,我使用代码中的各种 var_dump 检查这些值。
问题在于保存时。它会在超时时引发一些致命错误,而且如果它写入文件,文件大小会膨胀到 9.2 MB,如果我可以打开它就可以了。
代码 sn-p - 没什么特别的。
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($inputFile);
$objPHPExcel->setActiveSheetIndex(2);
$activeSheet = $objPHPExcel->getActiveSheet();
$currCell = $activeSheet->getCell("O3");
$cellValidation = $currCell->getDataValidation("O3");
$values = array();
if ($cellValidation->getShowDropDown() == true)
{
$values = $cellValidation->getFormula1();
$valArray = explode(",", $values);
$currCell->setValue($valArray[0]);
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter -> setPreCalculateFormulas(false);
$objWriter->save($outputFile);
我使用 MS Excel 2010 打开生成的文件,但它只需要很长时间,甚至一次都没有打开过。
请帮我解决这个问题,告诉我应该在哪里寻找。
非常感谢任何帮助。
【问题讨论】: