java导出多个exce或者1个exell

// 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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值