使用PHP读写excel文件

时间:2012-10-15 10:07:48

标签: php mysql excel

  

可能重复:
  Alternative for PHP_excel
  PHPExcel reader — help required

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

我目前的解决方案如下:

导入数据库

我对.xls文件使用php-excel reader(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:如果有人想看看我是如何实现上述解决方案的,我很乐意分享这些代码

5 个答案:

答案 0 :(得分:4)

由于您对PHPExcel的速度和内存要求不满意,我会指向standard answer这个问题。如果没有在那里列出答案,那么它可能不存在:该列表与我所知道的一样全面....尽管人们编写自己的PHPExcel替代品很少费心去告诉我让它难以跟上-date

答案 1 :(得分:2)

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

唯一认为你可以真正解决内存不足的问题是设置更高的memory_limit

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

我会推荐PHPExcel。如果需要,它易于使用并且易于更改功能。我已经使用了很多东西,从来没有任何问题,即使有大量复杂的电子表格。

答案 4 :(得分:-2)

PHPExcel Class这个班可以: