php中导入几万条excel数据的处理方法 langziyang 技术分享 358 views 我们在开发过程中经常会遇到使用excel导入数据到系统中,如果数据量比较少则可以使用 phpoffice/phpspreadsheet 库进行操作,该库非常的不错,我也经常使用。 但是如果导入的数据非常大,该库可能会非常吃力。我试过导入一个大于16M大小的数据,横轴有两百多个单元格,竖轴有两万一千多条。使用phpoffice/phpspreadsheet读取该文件时就报出了超时以及内存不足的情况。 然后我找到了xlswrite和league/csv库。xlswrite需要你的PHP版本在7.0以上,同时需要你进命令行安装这个PHP扩展,对于不方便的人来就不太现实了。 league/csv是一个php库,作者对该库的描述为: 1. Simple API 2. Read and Write to CSV documents in a memory efficient and scalable way 3. Support PHP Stream filtering capabilities 4. Transform CSV documents into popular formats (JSON, XML or HTML) 5. Framework-agnostic 然后我对这两个库进行了一个测试: 首先是league/csv,注意:使用该库时,csv文件需保存为带BOM的文件 ![](https://phpzlc.com//upload/64f997067bc3b.png) 接下来是xlswrite: ![](https://phpzlc.com//upload/64f997067c000.png) 可以看出xlswrite比league/csv更快。 在测试过程中我只测试了导入时间,并没有测试内存占用。但是并没有出现像phpoffice/phpspreadsheet报的超出内存限制错误。 帮助PHPZlc项目! 与任何开源项目一样, 贡献代码 或 文档 是最常见的帮助方式, 但我们也有广泛的 赞助机会。 0 赞赏 加入技术群 评论 去登录