| | |
| | | * @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页面(按页标) |
| | | * |