- Java code
//获取需要的用户信息 lu = comm.findalluser(); for (User u : lu) {//查出所有客户信息 la = salesaccountdao.listpallAccount(u.getUserid()); if (la.size() > 0) { accountLists.addAll(la); } }//将查处的所有客户信息导出成excel[color=#FF0000](一下循环费时)[/color] int i=0,j=0,size = accountLists.size(); for (i = 1; i < size; i++) { // 获得这个sheet的第i行 row = sheet1.createRow(i); for (j = 0; j < 12; j++) { // 设置每个sheet每一行的宽度,自动,根据需求自行确定 sheet1.autoSizeColumn(j + 1, true); // 获得这一行的每j列 cell = row.createCell(j); switch (j) { case 0: cell.setCellValue(accountLists.get(i).getName()); break; case 1: cell.setCellValue(accountLists.get(i).getAddress()); break; case 2: cell.setCellValue(accountLists.get(i).getCity()); break; case 3: cell.setCellValue(accountLists.get(i).getCreatetime()); break; case 4: cell.setCellValue(accountLists.get(i).getCustomertype()); break; case 5: cell.setCellValue(accountLists.get(i).getDescription()); break; case 6: cell.setCellValue(accountLists.get(i).getProvince()); break; case 7: cell.setCellValue(accountLists.get(i).getStatecode()); break; case 8: cell.setCellValue(accountLists.get(i).getFax()); break; case 9: cell.setCellValue(accountLists.get(i).getIndustrycode()); break; case 10: cell.setCellValue(accountLists.get(i).getRemarks()); break; case 11: cell.setCellValue(accountLists.get(i).getWebsiteurl()); break; case 12: cell.setCellValue(accountLists.get(i).getTelephone()); break; case 13: cell.setCellValue(accountLists.get(i).getUserByOwnerid().getName()); break; } } }[color=#FF0000]//就在生成excel的嵌套循环中,浪费了大量时间,总的600条数据,打印时间却是110秒钟,请高手指点一二,不胜感激!![/color]
------解决方案--------------------------------------------------------
- Java code
int i=0,j=0,size = accountLists.size(); for (User user : accountLists) { // 获得这个sheet的第i行 row = sheet1.createRow(i); for (j = 0; j < 12; j++) { // 获得这一行的每j列 cell = row.createCell(j); switch (j) { case 0: cell.setCellValue(user.getName()); break; case 1: cell.setCellValue(user.getAddress()); break; case 2: cell.setCellValue(user.getCity()); break; case 3: cell.setCellValue(user.getCreatetime()); break; case 4: cell.setCellValue(user.getCustomertype()); break; case 5: cell.setCellValue(user.getDescription()); break; case 6: cell.setCellValue(user.getProvince()); break; case 7: cell.setCellValue(user.getStatecode()); break; case 8: cell.setCellValue(user.getFax()); break; case 9: cell.setCellValue(user.getIndustrycode()); break; case 10: cell.setCellValue(user.getRemarks()); break; case 11: cell.setCellValue(user.getWebsiteurl()); break; case 12: cell.setCellValue(user.getTelephone()); break; case 13: cell.setCellValue(user.getUserByOwnerid().getName()); break; } } i++; } for (j = 0; j < 12; j++) { // 设置每个sheet每一行的宽度,自动,根据需求自行确定 sheet1.autoSizeColumn(j + 1, true); }