在处理一个导出Excel的功能时,使用了jxl进行导出,现场使用时发现导出特别耗时,大概需要2分钟左右,而且在导出这2分钟内,系统的其他菜单点击时没反应,后台线程CPU使用率50%,经测试,发现是以下两句代码耗时特别长,
Workbook wb = Workbook.getWorkbook(in); WritableWorkbook wwb = Workbook.createWorkbook(tf, wb);
百思不得其解,尝试百度关键字“jxl createWorkbook 太慢”,发现已经有人趟过这个雷了,并有了解决办法。
WorkbookSettings wbs=new WorkbookSettings(); wbs.setGCDisabled(true);--加上这段代码即可 Workbook wb = Workbook.getWorkbook(excelFile,wbs);
经改造后代码变为以下形式:
WorkbookSettings wbs=new WorkbookSettings(); wbs.setGCDisabled(true);//禁用GC,能大大加快Excel的导出速度 Workbook wb = Workbook.getWorkbook(in, wbs); WritableWorkbook wwb = Workbook.createWorkbook(tf, wb, wbs);
其原因是因为Jxl在核心代码中过度使用System.gc()方法,增加CPU负荷。
在jxl.write.biff.File类对象方法colse和WorkbookParser类对象方法close中,对系统JVM垃圾回收进行了强制垃圾回收,在J2EE应用服务器中,我们是极力反对这种应用调度GC的做法,此种操作会极度影响系统性能和稳定性。
相关推荐
jxl导出excel加水印 WritableWorkbook、WritableSheet、WritableCellFormat
jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程
使用jxl导出Excel表的好例子 导出excel表的例子
jxl导出excel工具类,封装好了的,实现传递任意集合自动导出excel
Android使用jxl快速导出excel表
jxl导入导出excel 详细的描述了如何使用jxl导入导出excel。
jxl对excel添加水印(含有setWaterMarkImage方法).zip
使用Jxl对Excel进行导入导出,其中包含设置单元格样式以及数据有效性。
使用jxl方式实现Excel表格导出,非常简单而且实用
jxl导出Excel基础,非常有用的一个东西,漫漫看
jxl工具类导出excel,导出详细说明,及相关代码和jar,如有不明白私聊
JXL操作EXCEL 数据库导出EXCEL相关文件一些详细资料
java使用jxl导入导出excel,此为中文doc文档,但jxl貌似实现不了单元格画出斜线
java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图
jxl从数据库中直接导出excel文档java源码
java版本通过JXL使用模板导出EXCEL
jxl对下拉列表的读写操作以及相应的修改功能
利用JXL技术支持模板和非模板的表格导出
jxl实现excel导出完整的例子!虽然这个不是和数据库没有联系但是请放心我保证你看了我的这个例子后绝对会自己做出和数据库连接的例子!有事联系我们共同探讨 QQ:376707296
jxlapi和jar包 博文链接:https://dhl004.iteye.com/blog/1324644