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.

posted @ 2018-01-31 16:28  xh_Blog  阅读(491)  评论(0编辑  收藏  举报