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日
暂无贡献等级