首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHPSpreadsheet构建非常大的电子表格

使用PHPSpreadsheet构建非常大的电子表格
EN

Stack Overflow用户
提问于 2018-06-07 09:19:16
回答 1查看 21.4K关注 0票数 19

我正在测试PHPSpreadsheet是如何处理大型excel电子表格的。初步测试表明,对于大型电子表格,内存很快就会用完。

有没有一种逐步编写电子表格的方法?

我有一段很久以前用来从PHP创建电子表格的老代码。它使用了一个非常旧的标准,并将进行更新。但我的旧代码的一个优点是,我可以直接写入文件,而不是在内存中构建整个文件,因此可以轻松地处理非常大的电子表格,而不会超出内存限制。

在PHPSpreadsheet中可以做类似的事情吗?我试着阅读了文档,并搜索了各种论坛,但大多数回复似乎只是“增加可用内存”。

EN

回答 1

Stack Overflow用户

发布于 2018-06-07 18:55:45

在他们的文档中有一个关于这方面的主题:

https://phpspreadsheet.readthedocs.io/en/latest/topics/memory_saving/#memory-saving

你基本上可以将单元存储在缓存中,例如Redis中(从他们的文档中):

代码语言:javascript
复制
$client = new \Redis();
$client->connect('127.0.0.1', 6379);
$pool = new \Cache\Adapter\Redis\RedisCachePool($client);
$simpleCache = new \Cache\Bridge\SimpleCache\SimpleCacheBridge($pool);

\PhpOffice\PhpSpreadsheet\Settings::setCache($simpleCache);

如果您使用的是Predis,则可以使用以下存储库:

https://github.com/php-cache/predis-adapter

并使用以下代码:

代码语言:javascript
复制
$client = new \Predis\Client($yourParameters, $yourOptions);
$pool = new \Cache\Adapter\Predis\PredisCachePool($client);
$simpleCache = new \Cache\Bridge\SimpleCache\SimpleCacheBridge($pool);

\PhpOffice\PhpSpreadsheet\Settings::setCache($simpleCache);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50731704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档