PHPEXCEL:阅读电子表格 - >审核并应用格式 - >保存审核的电子表格。记忆问题

时间:2012-04-30 09:16:29

标签: php phpexcel

有关PHPEXCEL内存问题的文档很多,因此我的问题假设读取了“块” - 正如Mark Ba​​ker所描述的那样。我的具体情况是:
- 阅读上传到数据库记录的“原始”电子表格(工作正常)
- 检索所述电子表格,使用PHPExcel打开,并审核单元格 - 阅读行和列并查找条件 - 如果单元格有[信息|警告|错误](a)应用条件格式并插入单元格注释(工作正常)
- 对所有行和列执行此操作。完成前运行内存不足。
- 将格式化的电子表格保存到服务器目录中,以便用户可以下载并查看所有嵌入式错误警告或信息项 - 如果我限制读取的行数,也可以正常工作。

电子表格不是特别大130或行60列。

这是我尝试过的:
- 阅读马克贝克的“大块”。问题是过滤器只返回行的子集。与块规则相关的那些。因此,当我在块读取和处理结束时进行保存时,只保存那些行,而不是整个电子表格。
- 使用单元格缓存(

$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
PHPExcel_Settings::setCacheStorageMethod($cacheMethod);

)允许我读取和更新每一行和相关的单元格,但是当我去$objWriter->save(str_replace('.php', '.xlsx', $theDIRandFileName)时,我在XMLWriter.php中遇到内存问题:

Fatal error: Allowed memory size of 18874368 bytes exhausted (tried to allocate 238592 bytes) in ... /PHPExcel/Shared/XMLWriter.php on line 100

哎呀!

非常感谢任何帮助。现在它似乎唯一让我尝试的是打开两个副本,使用块方法,但弄清楚如何阅读未经编辑的版本但更新块版本。一定有更好的方法。

0 个答案:

没有答案
相关问题