From cd4142ab1e0ec3016f123ebbb7f2e12a1b9120a3 Mon Sep 17 00:00:00 2001 From: wangxy <1481820854@qq.com> Date: Fri, 18 Apr 2025 13:15:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=87=AA=E6=9F=A5=E8=87=AA=E8=AF=84?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E5=AF=BC=E5=85=A5=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/utils/poi/MultiSheetExcelUtil.java | 40 +++++-------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/MultiSheetExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/MultiSheetExcelUtil.java index 83e20ba..49c8313 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/MultiSheetExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/MultiSheetExcelUtil.java @@ -117,14 +117,11 @@ public class MultiSheetExcelUtil { } - - private void setCellValue(Cell cell, Object value, FieldMeta meta) { if (value == null) { cell.setCellValue(""); return; } - // 处理日期类型 if (value instanceof Date) { String format = StringUtils.isNotEmpty(meta.getDateFormat()) @@ -183,12 +180,18 @@ public class MultiSheetExcelUtil { private CellStyle createDataStyle(Workbook workbook) { CellStyle style = workbook.createCellStyle(); // 设置边框 + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setBorderRight(BorderStyle.THIN); + style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setBorderLeft(BorderStyle.THIN); + style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); style.setBorderTop(BorderStyle.THIN); + style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); style.setBorderBottom(BorderStyle.THIN); - style.setBorderLeft(BorderStyle.THIN); - style.setBorderRight(BorderStyle.THIN); + style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + style.setFillPattern(FillPatternType.SOLID_FOREGROUND); // 设置自动换行(可选) - style.setWrapText(true); + //style.setWrapText(true); return style; } @@ -207,16 +210,17 @@ public class MultiSheetExcelUtil { private void fillDataRows(Sheet sheet, List list, List fields) { + CellStyle dataStyle = createDataStyle(workbook); int rowNum = 1; for (T item : list) { Row row = sheet.createRow(rowNum++); for (int i = 0; i < fields.size(); i++) { FieldMeta meta = fields.get(i); Cell cell = row.createCell(i); - try { // 直接通过缓存的Field对象获取值 Object value = meta.getField().get(item); + cell.setCellStyle(dataStyle); setCellValue(cell, value, meta); // 传递FieldMeta对象 } catch (IllegalAccessException e) { cell.setCellValue("N/A"); @@ -226,26 +230,4 @@ public class MultiSheetExcelUtil { } - /*private void fillDataRows(Sheet sheet, List list, List fields) { - CellStyle dataStyle = createDataStyle(workbook); - int rowNum = 1; - for (T item : list) { - Row row = sheet.createRow(rowNum++); - for (int i = 0; i < fields.size(); i++) { - Cell cell = row.createCell(i); - Object[] fieldInfo = fields.get(i); - String fieldName = (String) fieldInfo[0]; - Object value = getFieldValueByName(fieldName, item); - // 获取Field对象并传递 - try { - Field field = item.getClass().getDeclaredField(fieldName); - setCellValue(cell, value, field); // 调用新版方法 - } catch (NoSuchFieldException e) { - setCellValue(cell, value, null); // 降级处理 - } - cell.setCellStyle(dataStyle); - } - } - }*/ - }