在Laravel中导入Excel文件,数据量太大,服务器经常500怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Laravel中导入Excel文件,数据量太大,服务器经常500怎么办相关的知识,希望对你有一定的参考价值。

参考技术A 你好,不要在读取excel的时候进行逻辑处理,读进来,直接把一条条数据丢进队列去,然后起队列异步的处理这些数据

java大概1000W数据导出成excel有啥好的建议。(最好是插件,POI、JXL、FastExcel已试过,数据量太大,不

客户需求,要导出大概一千万的数据成excel形式。求解决方案!POI、JXL、FastExcel三个对一千万的数据处理不是很好。求解!

使用POI或JXL的话,数据是一次性读入内存,封装成对象,再一次性导出的。这么大的数据量都有G级了吧,如果是一次性作业的话,内存很难受。
考虑分批,追加写入的方式,对于简单的字节字符流文件是可取的。然而写成excel这种结构化的文件格式应该是没办法胜任了,追加写入时往往需要事先获知文件的结构信息,然后找到相应的位置进行插入,而这个过程也是复杂的(这也是POI、JXL出现的原因)。
因此,建议你输出为多个excel文件吧。

PS:不知道这么大的数据为何还要输出成Excel文件,Excel文件本来就是给人看的,相信你的数据一定不是给人看的,而是作为存储载体而已,那么使用更加简洁的方式不是更好?使用简单的文本文件进行存储(还可实现追加);使用库表作为载体则更优
参考技术A Excel本身就不支持这么多数据,一个sheet也就容65535行数据,一个workbook最多256个sheet,
同时还要求JVM的内存够大
参考技术B 是的,excel是有60000行的限制。如果你能够正确的导出excel,说明你已经掌握了excel的操作。我提供一种思路供你参考:判断你要导出数据的行数,以6万为基数,进行程序判断。可以通过循环的方式,计算出需要的sheet数量,每次循环建立一个sheet,然后把数据导入。关键的问题在于创建新的sheet和,计算导出的数据。希望对你有所帮助吧。
参考技术C 此需求可以放弃,转换业务思路,找到问题的根源,从业务上解决问题

以上是关于在Laravel中导入Excel文件,数据量太大,服务器经常500怎么办的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 5.8 中导入 excel 文件后无法管理文件数据

如何在 Laravel 中导入具有各种模型(和子数据/模型)的单个 excel 文件/工作表?

如何使用 laravel 5.7 和 vue JS 在 mysql 中导入 excel 文件

java大概1000W数据导出成excel有啥好的建议。(最好是插件,POI、JXL、FastExcel已试过,数据量太大,不

MySQL中导入excel表格,急!

Excel数据量太大,用VBA运算依然会耗时太久,运行很慢,该怎么办?