5

可能重复:
PHP_excel
PHPExcel 阅读器的替代品 — 需要帮助

第一篇文章。我非常需要使用 PHP/My SQL 读取和写入非常大 (5mb+) 的 excel 文件。我使用过 PHPExcel,虽然它非常优雅,但它太慢了,并且使用了太多 PHP 内存来满足我的需要。目前,我的主机仅限于 32M PHP 内存。

我目前的解决方案如下:

导入数据库

我对 .xls 文件使用 php-excel 阅读器 ( http://code.google.com/p/php-excel-reader/ ) - 在 PHP 内存不足之前可以导入大约 3000 行。
我对 .xlsx 文件使用电子表格阅读器(https://github.com/nuovo/spreadsheet-reader),到目前为止,我已经尝试了 5000 行以上而没有耗尽内存。它非常慢,这让我相信它一次打开和关闭 excel 文件并读取大块数据。

出口

PHP Excel 用于大约 500 行以下的任何内容。效果很好,但速度很慢,并且无法使用 32Mb PHP 内存处理几百行(注意:我正在使用缓存,这有帮助但还不够)

超过 500 行的基本制表符分隔文本。非常快,对行没有限制,但没有格式,也不是真正的 excel。

理想情况下,我正在寻找一种可以快速读写 .xls 和 .xlsx 文件且不会遇到内存问题的一体化解决方案。我不介意商业产品,并且很乐意为有效的东西支付几百美元。

我花了几个小时搜索互联网和这个网站,但还没有找到任何东西。

有任何想法吗?

PS:如果有人想看看我是如何实现上述解决方案的,我很乐意分享代码

4

5 回答 5

4

由于您对 PHPExcel 的速度和内存要求不满意,我将向您指出我对这个问题的标准答案。如果那里没有列出答案,那么它可能不存在:该列表就我所知道的那样全面.... -日期

于 2012-10-15T10:14:35.310 回答
2

就我的经验而言,php 中的 excel 实现并没有很好的性能(perl 实现花了 8 分钟来编写 php 3 小时所做的事情),所以我最终使用了 Perl。

唯一可以真正解决内存不足问题的方法是设置更高的值memory_limit

于 2012-10-15T10:16:10.363 回答
0

对于写作,您可能想尝试一下http://pear.php.net/package/Spreadsheet_Excel_Writer

于 2012-10-15T10:44:23.733 回答
-1

我会推荐PHPExcel。如果需要,它很容易使用并且很容易更改功能。我用过很多次,从来没有遇到过任何问题,即使是大型复杂的电子表格。

于 2012-10-15T10:13:37.983 回答
-2

PHPExcel 类该类可以:

于 2012-10-15T10:11:03.083 回答