From eea8ef722019a37544a9b0010a01fea80bd04385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 7 Jan 2026 17:36:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=A5=E8=A1=A8=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/hrmSalary.properties | 2 +- .../salary/util/excel/ExcelUtilPlus.java | 49 ++++++++++++------- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index e8125608b..f34b64397 100644 --- a/resource/WEB-INF/prop/hrmSalary.properties +++ b/resource/WEB-INF/prop/hrmSalary.properties @@ -1,5 +1,5 @@ log=false defaultCloseNonStandard149=true AESEncryptScrect=990EB004A1C862721C1513AE90038C9E -version=2.19.1.2501.01 +version=2.19.2.2501.01 openFormulaForcedEditing=false \ No newline at end of file diff --git a/src/com/engine/salary/util/excel/ExcelUtilPlus.java b/src/com/engine/salary/util/excel/ExcelUtilPlus.java index bd50fd913..a63242828 100644 --- a/src/com/engine/salary/util/excel/ExcelUtilPlus.java +++ b/src/com/engine/salary/util/excel/ExcelUtilPlus.java @@ -1,5 +1,6 @@ package com.engine.salary.util.excel; +import cn.hutool.core.util.StrUtil; import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.util.SalaryDateUtil; import org.apache.commons.collections4.CollectionUtils; @@ -133,10 +134,10 @@ public class ExcelUtilPlus { for (int i = 0; i < header.size(); i++) { WeaTableColumnGroup columnGroupItem = (WeaTableColumnGroup) header.get(i); XSSFCell rowZeroCell = row0.createCell(i, CellType.STRING); - rowZeroCell.setCellValue(columnGroupItem.getText().toString()); + rowZeroCell.setCellValue(columnGroupItem.getText()); rowZeroCell.setCellStyle(titleCellStyle); //设置列宽 - sheet.setColumnWidth(i, Math.min(255, Math.max(12, columnGroupItem.getText().length() * 4)) * 256); + sheet.setColumnWidth(i, Math.min(255, Math.max(12, Utils.null2String(columnGroupItem.getText()).length() * 4)) * 256); patternList.add(columnGroupItem.getPattern()); } @@ -192,8 +193,10 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { if (lastRowRed && rowIndex == rowList.size() - 1) { cell.setCellStyle(numberRedCellStyleMap.get(patternList.get(cellIndex))); @@ -201,8 +204,7 @@ public class ExcelUtilPlus { cell.setCellStyle(numberCellStyleMap.get(patternList.get(cellIndex))); } cell.setCellType(CellType.NUMERIC); - double value = o == null ? 0 : ((BigDecimal) o).doubleValue(); - cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); + cell.setCellValue(((BigDecimal) o).doubleValue()); } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); @@ -222,6 +224,7 @@ public class ExcelUtilPlus { } return workbook; } + public static XSSFWorkbook genWorkbookV2(List> rowList, String sheetName) { XSSFWorkbook workbook = new XSSFWorkbook(); @@ -282,11 +285,13 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { cell.setCellType(CellType.NUMERIC); - cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); + cell.setCellValue(((BigDecimal) o).doubleValue()); } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); @@ -369,8 +374,10 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); @@ -478,11 +485,13 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { cell.setCellType(CellType.NUMERIC); - cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue()); + cell.setCellValue(((BigDecimal) o).doubleValue()); } else if (o instanceof Boolean) { cell.setCellType(CellType.BOOLEAN); cell.setCellValue(String.valueOf(o)); @@ -676,8 +685,10 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { if (lastRowRed && rowIndex == rowList.size() - 1) { cell.setCellStyle(numberRedCellStyleMap.get(patternList.get(cellIndex))); @@ -841,8 +852,10 @@ public class ExcelUtilPlus { } Object o = infoList.get(cellIndex); if (o instanceof String) { - cell.setCellType(CellType.STRING); - cell.setCellValue(String.valueOf(o)); + if (StrUtil.isNotBlank(String.valueOf(o))) { + cell.setCellType(CellType.STRING); + cell.setCellValue(String.valueOf(o)); + } } else if (o instanceof BigDecimal) { cell.setCellType(CellType.NUMERIC); cell.setCellValue(o == null ? 0 : ((BigDecimal) o).doubleValue());