Laravel的excel读取表格内存溢出解决方案
技术栈:php laravel maatwebsite/excel
问题描述 :用户上传excel表格,php程序读取表格数据,由于表格不规范出现大量空行数据(列和行都存在同样的问题),导致读取表格数据时内存溢出
解决方案:已经定位到问题是由于表格空行引起的,就从去掉空行数据入手解决,上代码
我是使用Excel的import读取表格数据的第一个参数是我们自己定义的表格数据处理实现类用来接收读取的数据
FixedImport处理类如下:
我们的处理类必须实现以上的三个接口类
ToCollection 定义接收到数据类型(这里是集合)
WithColumnLimit 实现了此类则可以限制到读取到的最大列
这里就强制要求我们的处理类实现endColumn方法我的表头如下,所有我定义了endColumn方法并返回k
SkipsEmptyRows 则是跳过空行,实现了该类则启用该规则
包代码的实现:不论你要求的返回类型是ToCollection或ToArray都会走到toArray方法
总结:以上方法仅适用了我在实际业务场景中限制表格20000条操作,并且生产服务器的运行内存是2个G,如果有更大数据量的要求建议走WithChunkReading,这个方法实现了异步分块读取数据
Laravel的excel读取表格内存溢出解决方案相关推荐
- 大数据excel导出,内存溢出解决方案(SXSSF流用户模型)
SXSSF(流用户模型 API) SXSSF(包:org.apache.poi.xssf.streaming)是 XSSF 的一个 API 兼容的流扩展,当必须生成非常大的电子表格并且堆空间有限时使用 ...
- 解决POI读取Excel百万级内存溢出问题
使用传统poi来操作大数据量的excel会出现内存溢出的问题,根据各种资源,亲试了一个可用工具类,附代码如下: 一.基于eventusermodel的excel解析工具类 package com.ta ...
- 应用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap space)
http://www.educity.cn/wenda/351088.html 使用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap s ...
- vue2打包时内存溢出解决方案
vue2打包时内存溢出解决方案 参考文章: (1)vue2打包时内存溢出解决方案 (2)https://www.cnblogs.com/ZT0219/p/7872258.html 备忘一下.
- WEBLOGIC 内存溢出 解决方案
WEBLOGIC 内存溢出 解决方案 相关教程: 很好听 听听吧 朱禹齐(原创) 正文 前几天部署WebLogic出现线程阻塞情况,查看后台报错:<[STUCK] Execu ...
- POI3.8解决导出大数据量excel文件时内存溢出的问题
POI3.8解决导出大数据量excel文件时内存溢出的问题 参考文章: (1)POI3.8解决导出大数据量excel文件时内存溢出的问题 (2)https://www.cnblogs.com/feng ...
- java.lang.OutOfMemoryError: Java heap space内存溢出解决方案
java.lang.OutOfMemoryError: Java heap space内存溢出解决方案 一.设置环境变量 JAVA_OPTS= -Xms2048m -Xmx2048m 二.在Eclil ...
- java写入excel文件内存不足,java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) excel 工具框架...
产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件. 需求分析 对于 excel 导出,是一个很常见的需求. 最常见的解决方案就是使用 poi 直接同步导出一个 excel 文件. 客 ...
- 解决导出多个Excel表ZipOutputStream内存溢出问题——java heap space
文章目录 easypoi--Excel表系列 问题 思路 修改工具类 easypoi--Excel表系列 easypoi的基本用法 easypoi自定义样式 多个Excel表生成目录导出压缩包 本篇文 ...
最新文章
- python导入包相当于什么_Python包及其定义和引用详解
- 新版 apache_2.0.54 php-5.0.4 mysql-4.1.12a 组合安装向导(原创)
- 常用CSS缩写语法总结
- 记录一些精品开源项目
- Visual Studio 2005 插件编程(代码行数统计插件)之一
- [js] flash如何与js交互?
- Data Lake Analytics: 基于OSS文件自动推断建表
- 681_python安装win32com模块
- 九型人格,工作中的好帮手
- 基于SSM的企业人事人员管理系统
- Matlab 曲线拟合之polyfit与polyval函数
- 【NOIP 2015】斗地主
- 「Vue实战」武装你的前端项目
- python统计汉字个数是_使用 Python 统计中文字符的数量
- MPU9250的基本框架
- Protractor 怎么编写自动化测试用例
- 大数据发展必备三个条件
- EMC电磁兼容测试服务包括
- 【计算机网络】 IP地址划分
- 用Visio做工作流程图