From a56d2c03dc1ed11527bf65ec7bfdaad036a700e1 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 26 Nov 2025 23:35:28 +0800 Subject: [PATCH] fix code --- .../poi/excel/sax/Excel03SaxReader.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/Excel03SaxReader.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/Excel03SaxReader.java index 72c10ee7e..3adeb11b6 100644 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/Excel03SaxReader.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/sax/Excel03SaxReader.java @@ -79,7 +79,7 @@ public class Excel03SaxReader implements HSSFListener, ExcelSaxReader this.rid) { - return this.boundSheetRecords.get(this.rid > -1 ? this.rid : this.curRid).getSheetname(); + if (this.boundSheetRecords.size() > this.sheetIndex) { + return this.boundSheetRecords.get(this.sheetIndex > -1 ? this.sheetIndex : this.curRid).getSheetname(); } return null; @@ -189,7 +189,7 @@ public class Excel03SaxReader implements HSSFListener, ExcelSaxReader -1 && this.curRid > this.rid) { + if (this.sheetIndex > -1 && this.curRid > this.sheetIndex) { // 指定Sheet之后的数据不再处理 return; } @@ -200,7 +200,7 @@ public class Excel03SaxReader implements HSSFListener, ExcelSaxReader *
  • 传入'rId'开头,直接去除rId前缀
  • - *
  • 传入纯数字,表示sheetIndex,直接转换为rid
  • + *
  • 传入纯数字,表示sheetIndex,直接使用
  • * * - * @param idOrRidOrSheetName Excel中的sheet id或者rid编号或sheet名称,从0开始,rid必须加rId前缀,例如rId0,如果为-1处理所有编号的sheet + * @param sheetIndexOrSheetName Excel中的sheet 编号或sheet名称,从0开始,如果为-1处理所有编号的sheet * @return sheet索引,从0开始 * @since 5.5.5 */ - private int getSheetIndex(String idOrRidOrSheetName) { - Assert.notBlank(idOrRidOrSheetName, "id or rid or sheetName must be not blank!"); + private int getSheetIndex(String sheetIndexOrSheetName) { + Assert.notBlank(sheetIndexOrSheetName, "id or rid or sheetName must be not blank!"); // rid直接处理 - if (StrUtil.startWithIgnoreCase(idOrRidOrSheetName, RID_PREFIX)) { - return Integer.parseInt(StrUtil.removePrefixIgnoreCase(idOrRidOrSheetName, RID_PREFIX)); - } else if(StrUtil.startWithIgnoreCase(idOrRidOrSheetName, SHEET_NAME_PREFIX)){ + if (StrUtil.startWithIgnoreCase(sheetIndexOrSheetName, RID_PREFIX)) { + return Integer.parseInt(StrUtil.removePrefixIgnoreCase(sheetIndexOrSheetName, RID_PREFIX)); + } else if(StrUtil.startWithIgnoreCase(sheetIndexOrSheetName, SHEET_NAME_PREFIX)){ // since 5.7.10,支持任意名称 - this.sheetName = StrUtil.removePrefixIgnoreCase(idOrRidOrSheetName, SHEET_NAME_PREFIX); + this.sheetName = StrUtil.removePrefixIgnoreCase(sheetIndexOrSheetName, SHEET_NAME_PREFIX); } else { try { - return Integer.parseInt(idOrRidOrSheetName); + return Integer.parseInt(sheetIndexOrSheetName); } catch (NumberFormatException ignore) { // 如果用于传入非数字,按照sheet名称对待 - this.sheetName = idOrRidOrSheetName; + this.sheetName = sheetIndexOrSheetName; } }