jialh
21 小时以前 d0b19298e28a9b8b50c778704b77160f17e73950
java110-utils/src/main/java/com/java110/utils/util/ImportExcelUtils.java
@@ -60,9 +60,43 @@
     * @return
     */
    public static final Sheet getSheet(Workbook wb, String sheetName) {
        return wb.getSheet(sheetName);
        // 空值校验,避免空指针
        if (wb == null || sheetName == null) {
            return null;
        }
        // 标准化目标名称:去除两端空格,中间多个空格合并为一个
        String normalizedTarget = normalizeSheetName(sheetName);
        // 遍历所有sheet,逐个匹配标准化后的名称
        for (int i = 0; i < wb.getNumberOfSheets(); i++) {
            Sheet sheet = wb.getSheetAt(i);
            if (sheet == null) {
                continue;
            }
            String originalSheetName = sheet.getSheetName();
            // 标准化当前sheet名称
            String normalizedSheet = normalizeSheetName(originalSheetName);
            // 匹配成功则返回该sheet
            if (normalizedTarget.equals(normalizedSheet)) {
                return sheet;
            }
        }
        // 无匹配的sheet返回null(保持和原方法一致的返回逻辑)
        return null;
    }
    private static String normalizeSheetName(String name) {
        if (name == null) {
            return "";
        }
        // 步骤1:去除两端空格
        // 步骤2:将中间的多个连续空格(包括制表符、换行符等空白)替换为单个空格
        return name.trim().replaceAll("\\s+", " ");
    }
    /**
     * 获取Sheet页面(按页标)
     *
@@ -128,7 +162,7 @@
                        result = df.format(((HSSFCell) cell).getNumericCellValue());
                        break;
                    case HSSFCell.CELL_TYPE_FORMULA:
                        result = ((HSSFCell) cell).getNumericCellValue();
                        result = ((HSSFCell) cell).getBooleanCellValue();
                        break;
                    case HSSFCell.CELL_TYPE_BOOLEAN:
                        result = ((HSSFCell) cell).getBooleanCellValue();
@@ -157,8 +191,8 @@
                        result = df.format(((XSSFCell) cell).getNumericCellValue());
                        break;
                    case XSSFCell.CELL_TYPE_FORMULA:
                        result = ((XSSFCell) cell).getNumericCellValue();
                        break;
                        result = "";
                        throw new IllegalArgumentException("请不要公式计算,程序没法计算Excel的公式");
                    case XSSFCell.CELL_TYPE_BOOLEAN:
                        result = ((XSSFCell) cell).getBooleanCellValue();
                        break;