解决方案 »
- 关于javaEEweb项目中tomcat的mysql数据库连接池的问题
- 问卷调查数据库设计问题
- 关于list分组的问题,求思路,求解
- S2SH问题
- 菜菜菜鸟提问:eclipse打不开提示错误是怎么回事啊,急!!
- 严重: Servlet.service() for servlet action threw exception
- 项目需要,如何快速上手j2ee
- Weblogic中使用Servlet验证码引发的问题
- ireport jasper中使用 mysql数据库,中文处理问题。
- 在应聘 JAVA 时会考些什么试题呀?
- ActiveMQ EOFException ,急需解决!
- 关于多表关联的增删改查
因为,它们都是一次在内存生成整个excel对象。
poi最新版本倒是支持excel2007写临时文件,但是2003不能用。
有一种做法就是不以excel的形式导出,如:Excel另存为XML格式,以此XML为模板,将需要导出的内容拼接为XML字符串按顺序写到一个后缀为xls的文件中。也能用Excel打开的,但是这种情况适用于导出的是数据列表,如果有公式、图表之类的就不适用了。这种方式导出几十W都没问题。
而后,你的内存溢出应该是查询时将数据一条条插入的时候游标没有清空,然后越来越多,应该没查询一次就清空一次。statement=null,你可以看看你查询用的什么方式,内存溢出基本上数据库没问题就是程序上的游标没控制好了,希望能帮到你
.xlsx结尾的。
现在有一个想法,能不能读的时候分批读,每次读一部分,写的时候定位写呢?
晚上回去试试。
我之前的做法是将数据一次性写成Excel的格式,用的是 WritableWorkbook 和 WritableSheet。你的意思是我指定一个本地路径,然后再将数据以xml的格式写到该路径下的以.xls结尾的文件中,是么?
你随便找个简单的Excel另存为XML,就能理解我说的了。
POI或者JXL的话把服务器内存占满,导死服务器是肯定会发生的,跟数据条数还有字段个数都有关系。如果不对导出请求做并发限制,那结果会更严重。
如果要跟踪内存占用情况的话用jprofile监控下内存,做下代码级优化,但是效果不会改善多少的。
大数据量导出Excel的方案 java 大excel文件
fieldsList = appReader.queryForList("Contract.exportContractList",inDto); parametersDto.put("合同条数", new Integer(fieldsList.size()));// 合计条数
ExcelExporter excelExporter = new ExcelExporter();
excelExporter.setTemplatePath("/report/excel/app/contract.xls");
excelExporter.setData(parametersDto, fieldsList);
excelExporter.setFilename("合同项目表.xls");
excelExporter.export(request, response);溢出了 和你的情况一样吗 求指教