package com.it.poi; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.it.domain.School; import com.it.domain.User; /** * * 报表生成类 * */ public class ComplexExportExcelClient { private HSSFWorkbook wb = null; private HSSFSheet sheet = null; ExportExcel exportExcel = null; public ComplexExportExcelClient(){ wb = new HSSFWorkbook(); exportExcel = new ExportExcel(wb, sheet); } SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日");//设置日期格式 //System.out.println(df.format(new Date()));// new Date()为获取当前系统时间 public String exportExcel(){ //获取到报表的储存路径 String a = Thread.currentThread().getContextClassLoader().getResource(".").getPath(); a = a.replace("/","\\\\"); a=a.substring(0,0)+a.substring(2,a.length()); a+=df.format(new Date()) + "_report_total.xls"; exportExcel.outputExcel(a); return a; } /** * 用户表 **/ public String allUser(List<User> user){ if (user.size()!=0) { //设置sheet名 sheet = exportExcel.getWb().createSheet("用户表"); exportExcel.setSheet(sheet); //报表的列数 (报表列是从0开始的,3-1指的是3列) int number = 3-1; // 给工作表列定义列宽(实际应用自己更改列数) for (int i = 0; i < number; i++) { sheet.setColumnWidth(i, 6000); } // 创建单元格样式 HSSFCellStyle cellStyle = wb.createCellStyle(); // 指定单元格居中对齐 cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格垂直居中对齐 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 指定当单元格内容显示不下时自动换行 cellStyle.setWrapText(true); // 设置单元格字体 HSSFFont font = wb.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setFontName("宋体"); font.setFontHeight((short) 200); cellStyle.setFont(font); // 创建报表头部 exportExcel.createNormalHead("用户表", number); // 设置第二行 (报表的生成时间) String[] params = new String[] { df.format(new Date()), df.format(new Date())}; exportExcel.createNormalTwoRow(params, number); // 设置列头 HSSFRow row2 = sheet.createRow(3-1); HSSFCell cell0 = row2.createCell(0); cell0.setCellStyle(cellStyle); cell0.setCellValue(new HSSFRichTextString("姓名")); HSSFCell cell1 = row2.createCell(1); cell1.setCellStyle(cellStyle); cell1.setCellValue(new HSSFRichTextString("密码")); HSSFCell cell2 = row2.createCell(2); cell2.setCellStyle(cellStyle); cell2.setCellValue(new HSSFRichTextString("地址")); // 循环创建中间的单元格的各项的值 for (int i = 0; i < user.size(); i++) { HSSFRow row = sheet.createRow((short) i+3); exportExcel.cteateCell(wb, row, (short) 0, HSSFCellStyle.ALIGN_CENTER_SELECTION,user.get(i).getName()); exportExcel.cteateCell(wb, row, (short) 1, HSSFCellStyle.ALIGN_CENTER_SELECTION,user.get(i).getPassword()); exportExcel.cteateCell(wb, row, (short) 2, HSSFCellStyle.ALIGN_CENTER_SELECTION,user.get(i).getAddress()); } } return ""; } /** * 学校表 **/ public String allSchool(List<School> school){ if (school.size()!=0) { //设置sheet名 sheet = exportExcel.getWb().createSheet("学校表"); exportExcel.setSheet(sheet); // 计算该报表的列数 (报表列是从0开始的,3-1指的是3列) int number = 3-1; // 给工作表列定义列宽(实际应用自己更改列数) for (int i = 0; i < number; i++) { sheet.setColumnWidth(i, 6000); } // 创建单元格样式 HSSFCellStyle cellStyle = wb.createCellStyle(); // 指定单元格居中对齐 cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格垂直居中对齐 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 指定当单元格内容显示不下时自动换行 cellStyle.setWrapText(true); // 设置单元格字体 HSSFFont font = wb.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setFontName("宋体"); font.setFontHeight((short) 200); cellStyle.setFont(font); // 创建报表头部 exportExcel.createNormalHead("学校表", number); // 设置第二行 String[] params = new String[] { df.format(new Date()), df.format(new Date())}; exportExcel.createNormalTwoRow(params, number); // 设置列头 HSSFRow row2 = sheet.createRow(3-1); HSSFCell cell0 = row2.createCell(0); cell0.setCellStyle(cellStyle); cell0.setCellValue(new HSSFRichTextString("名称")); HSSFCell cell1 = row2.createCell(1); cell1.setCellStyle(cellStyle); cell1.setCellValue(new HSSFRichTextString("地址")); HSSFCell cell2 = row2.createCell(2); cell2.setCellStyle(cellStyle); cell2.setCellValue(new HSSFRichTextString("电话")); // 循环创建中间的单元格的各项的值 for (int i = 0; i < school.size(); i++) { HSSFRow row = sheet.createRow((short) i+3); exportExcel.cteateCell(wb, row, (short) 0, HSSFCellStyle.ALIGN_CENTER_SELECTION,school.get(i).getName()); exportExcel.cteateCell(wb, row, (short) 1, HSSFCellStyle.ALIGN_CENTER_SELECTION,school.get(i).getAddress()); exportExcel.cteateCell(wb, row, (short) 2, HSSFCellStyle.ALIGN_CENTER_SELECTION,school.get(i).getTelephone()); } } return ""; } }
最近下载更多
最近浏览更多
1358849392 LV21
2023年11月21日
weijianguo LV7
2023年5月21日
8战魂5无双8 LV43
2022年9月13日
最代码灬丿正牌 LV16
2022年9月4日
745075779 LV5
2022年2月8日
地方撒地方的 LV2
2021年12月18日
2607825144qq LV3
2021年12月8日
释辰
2021年10月29日
暂无贡献等级
无理
2021年9月9日
暂无贡献等级
落雨适合睡觉
2021年8月10日
暂无贡献等级