PoI导出列表优化
针对写了头信息之后,使用for循环遍历会导致数据丢失问题的优化,使用迭代器替代for循环,具体如下:
public static boolean ExportDeptLeaderFileToLocal(List<Manger> lsManger) { String[] titlie = { "姓名", "联系方式", "是否在岗" }; // 创建Excel工作簿 HSSFWorkbook workBook = new HSSFWorkbook(); // 创建一个Sheet页 HSSFSheet sheet = workBook.createSheet(); // 设置表格默认列宽度为15个字节 sheet.setDefaultColumnWidth((short) 15); // 创建第一行 HSSFRow row = sheet.createRow(0); // 定义单元格 HSSFCell cell = null; // 插入第一行数据id,name,sex for (int i = 0; i < titlie.length; i++) { cell = row.createCell(i); cell.setCellValue(titlie[i]); } // 遍历集合数据,产生数据行 Iterator<Manger> it = lsManger.iterator(); int index = 0; Manger manger=null; // 追加数据 while(it.hasNext()) { index++; // 创建行,每循环一次就创建一行 HSSFRow nextrow = sheet.createRow(index); manger = it.next(); // 创建第一行的第一列,并填入数据 HSSFCell cell2 = nextrow.createCell(0); cell2.setCellValue(manger.getMangerName()); // 创建第一行的第二列,并填入数据 cell2 = nextrow.createCell(1); cell2.setCellValue(manger.getMangerMobile()); // 创建第一行的第三列,并填入数据 cell2 = nextrow.createCell(2); cell2.setCellValue(manger.getIsDel()); } // 创建一个文件 File file = new File("C:/Users/Administrator/Downloads/DeptLeader_List.xls"); try { file.createNewFile(); FileOutputStream stream = FileUtils.openOutputStream(file); workBook.write(stream); stream.close(); workBook.close(); System.out.println(">>>文件已导出,路径为:C:\\Users\\Administrator\\Downloads\\DeptLeader_List.xls;导出结束!"); return true; } catch (Exception e) { e.printStackTrace(); System.out.println("部门leader列表导出失败!"); } return false; }
end.