diff --git a/FengHuang/src/main/java/UnitTest/TestRegex.java b/FengHuang/src/main/java/UnitTest/TestRegex.java index 62bc4ac..c67b5c3 100644 --- a/FengHuang/src/main/java/UnitTest/TestRegex.java +++ b/FengHuang/src/main/java/UnitTest/TestRegex.java @@ -4,10 +4,11 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.CharsetUtil; import com.jfinal.plugin.activerecord.Record; -import org.apache.poi.xssf.usermodel.XSSFCell; -import org.apache.poi.xssf.usermodel.XSSFRow; -import org.apache.poi.xssf.usermodel.XSSFSheet; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.xssf.usermodel.*; import java.io.*; import java.util.ArrayList; @@ -31,25 +32,68 @@ public class TestRegex { } } - public static final String excelPath="c:\\录取分数导出结果.xlsx"; + public static final String excelPath = "c:\\录取分数导出结果.xlsx"; + public static void ExportExcel(List list, List errlist) throws IOException { String template = "D:\\dsWork\\FengHuang\\FengHuang\\src\\main\\java\\UnitTest\\录取分数导出模板.xlsx"; //创建工作簿 XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(template)); //读取第一个工作表(这里的下标与list一样的,从0开始取,之后的也是如此) - XSSFSheet sheet = xssfWorkbook.getSheetAt(0); + XSSFSheet sheet1 = xssfWorkbook.getSheetAt(0); + //正文与表头不是一个颜色 + XSSFFont txtFont = xssfWorkbook.createFont(); + txtFont.setFontHeightInPoints((short) 14); //字体大小 + txtFont.setFontName("宋体"); //字体 + XSSFCellStyle cellStyleTxt = xssfWorkbook.createCellStyle(); + cellStyleTxt.setFont(txtFont); + cellStyleTxt.setAlignment(HorizontalAlignment.CENTER); + cellStyleTxt.setFillForegroundColor(IndexedColors.LIME.getIndex()); + cellStyleTxt.setWrapText(true);//设置自动换行 + cellStyleTxt.setVerticalAlignment(VerticalAlignment.CENTER); + cellStyleTxt.setBorderBottom(BorderStyle.THIN); // 底部边框 + cellStyleTxt.setBorderLeft(BorderStyle.THIN); // 左边边框 + cellStyleTxt.setBorderRight(BorderStyle.THIN); // 右边边框 + cellStyleTxt.setBorderTop(BorderStyle.THIN); // 上边边框 for (int i = 0; i < list.size(); i++) { + short rowHeight = 30 * 20; Record record = list.get(i); - XSSFRow row = sheet.createRow(i + 2); + XSSFRow row = sheet1.createRow(i + 2); XSSFCell cell = row.createCell(0); + cell.setCellStyle(cellStyleTxt); cell.setCellValue(record.getStr("id")); + row.setHeight(rowHeight); + cell = row.createCell(1); + cell.setCellStyle(cellStyleTxt); cell.setCellValue(record.getStr("zhuanye")); + row.setHeight(rowHeight); + cell = row.createCell(2); cell.setCellValue(record.getStr("xf")); + cell.setCellStyle(cellStyleTxt); + row.setHeight(rowHeight); + cell = row.createCell(3); cell.setCellValue(record.getStr("memo")); + cell.setCellStyle(cellStyleTxt); + row.setHeight(rowHeight); + } + //写入异常数据 + XSSFSheet sheet2 = xssfWorkbook.getSheetAt(1); + for (int i = 0; i < errlist.size(); i++) { + short rowHeight = 30 * 20; + Record record = errlist.get(i); + XSSFRow row = sheet2.createRow(i + 2); + XSSFCell cell = row.createCell(0); + cell.setCellStyle(cellStyleTxt); + cell.setCellValue(record.getStr("id")); + row.setHeight(rowHeight); + + cell = row.createCell(1); + cell.setCellStyle(cellStyleTxt); + cell.setCellValue(record.getStr("name")); + row.setHeight(rowHeight); } //生成文件 @@ -132,6 +176,6 @@ public class TestRegex { } } ExportExcel(list, errList); - System.out.println("恭喜,结果数据导出成功,地址:"+excelPath); + System.out.println("恭喜,结果数据导出成功,地址:" + excelPath); } } diff --git a/FengHuang/src/main/java/UnitTest/录取分数导出模板.xlsx b/FengHuang/src/main/java/UnitTest/录取分数导出模板.xlsx index cc2f30a..f17bf8b 100644 Binary files a/FengHuang/src/main/java/UnitTest/录取分数导出模板.xlsx and b/FengHuang/src/main/java/UnitTest/录取分数导出模板.xlsx differ