我现在数据库的数据时1620条,查询用了400ms左右,但是光是循环读取数据写入excel就用了7000ms左右,实现太慢了,我也想过用多线程的方式,但是多线程处理list循环后会顺序就不是想要的顺序了,希望做过导出excel的大神,可以给我推荐一个按照模板导出excel高效的代码,谢谢。
private ExcelTemplate handlerObj2Excel (String template,List objs,Class clz,boolean isClasspath) { ExcelTemplate et = ExcelTemplate.getInstance(); try { if(isClasspath) { et.readTemplateByClasspath(template); } else { et.readTemplateByPath(template); } List<ExcelHeader> headers = getHeaderList(clz); Collections.sort(headers); //输出标题 et.createNewRow(); for(ExcelHeader eh:headers) { et.createCell(eh.getTitle()); } //输出值 long start = System.currentTimeMillis(); for(Object obj:objs) { et.createNewRow(); for(ExcelHeader eh:headers) { et.createCell(BeanUtils.getProperty(obj,getMethodName(eh))); } } //写入序号 et.insertSer(); System.out.println("创建excel耗时间:"+(System.currentTimeMillis() - start)); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } return et; }
相关分类