java导出多个exce或者1个exell

来源:互联网 发布:卖假货的淘宝店 编辑:程序博客网 时间:2024/05/16 11:27
// 1.创建一个webbook,对应一个Excel文件
Workbook wb = ExcelUtil.createWorkBook(); 
//如果导出一个sheet的话就不用for循环了
String[] actionarr =  {"0","1","2","3"};  
for(int i = 0; i < actionarr.length ; i++){
// 2.创建sheet
String sheetName = "";
if(i == 0)
sheetName ="登出日志";
if(i == 1)
sheetName ="登录日志";
if(i == 2)
sheetName ="权限变更";
if(i == 3)
sheetName ="操作日志";

Sheet sheet = ExcelUtil.createSheet(sheetName, wb);
wb.setSheetName(i, sheetName);
// 3.在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
Row titleRow = sheet.createRow(0);
// 4.创建单元格,并设置值表头 设置表头居中
CellStyle style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);


// 5.表头
// 创建标题栏样式
CellStyle styleTitle = wb.createCellStyle();
// 指定单元格居中对齐
styleTitle.setAlignment(HorizontalAlignment.CENTER);
// 指定单元格垂直居中对齐
styleTitle.setVerticalAlignment(VerticalAlignment.CENTER);


// 字体样式
Font fontTitle = wb.createFont();
// 加粗
fontTitle.setBold(true);
// 宋体
fontTitle.setFontName("宋体");
// 高度
fontTitle.setFontHeight((short) 200);
styleTitle.setFont(fontTitle);


List<String> titleList = new ArrayList<String>();
titleList.add("操作用户");
titleList.add("邮箱");
titleList.add("部门");
titleList.add("操作内容");
titleList.add("操作时间");


// 循环创建第一行表头对应的列
for (Integer a = 0; a < titleList.size(); a++) {
Cell titleFirstCell = titleRow.createCell(a);
titleFirstCell.setCellValue(titleList.get(a));
titleFirstCell.setCellStyle(styleTitle);
}


// 6.写入实体数据
List<Map<String, Object>> list = lService.exportLogs(actionarr[i], startDate, endDate);
for (int a = 0; a < list.size(); a++) {
Map<String, Object> map = list.get(a);
Row contentRow = sheet.createRow(a + 1);
contentRow.createCell(0).setCellValue(String.valueOf(map.get("username")));
contentRow.createCell(1).setCellValue(String.valueOf(map.get("useremail")));
contentRow.createCell(2).setCellValue(String.valueOf(map.get("userbm")));
contentRow.createCell(3).setCellValue(String.valueOf(map.get("logtext")));
contentRow.createCell(4).setCellValue(String.valueOf(map.get("createtime")));
}

}

//7.响应流

response.setContentType("application/octet-stream");

response.setHeader("name", URLEncoder.encode(filename, "UTF-8"));
response.setHeader("Content-disposition","attachment; filename=\"" + URLEncoder.encode(filename,"UTF-8") + "\"");
wb.write(response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
wb.close();

原创粉丝点击