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")));
}
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();
阅读全文
1 0
- java导出多个exce或者1个exell
- 提取多个excel某一列,合并到一个新的exce
- 导入,导出Exce Wordl
- poi 模版 导出exce
- Java 输入多行字符串或者多个int数值
- java 压缩单个文件,多个文件,或者压缩文件夹
- java 获取前1个小时或者一个月
- 导出多个表格到EXCEL或者ET的JavaScript代码
- beamer加载动画+gif导出多个png或者jpg图片
- java导出多个excel压缩zip下载
- Java将多个数据表导出多个Sheet到Excel文件
- java poi 生成多个sheet(表格导出)
- 关于java poi 大数据导出 创建多个sheet
- Java操作POI批量导出多个excle
- java导出包含多个sheet的Excel
- java导出多个excel并打成zip包
- Oracle导出多个用户
- oracel导出多个文件
- 掌握USB/HDMI/MHL/DP验证规范 高速接口传输一次上手
- vin码(车架号)识别解析系统
- JavaBean & super & this
- Rtsp拉流录制MP4
- 关于json的几个方法
- java导出多个exce或者1个exell
- Ubuntu安装UFW防火墙以及常用操作
- 生成函数(母函数)入门详解
- JZOJ 100035. 【NOIP2017提高A组模拟7.10】区间
- kali4.9 64位系统2017版本安装w3af详细步骤以及遇到的问题解决方法
- window系统安装mysql数据库解压缩版
- DirectX11(五)
- 漫谈操作系统8 -- 神奇的vDSO
- 【Java TCP/IP Socket】服务端的实现(可连接oracle数据库)