]> source.dussan.org Git - poi.git/commitdiff
HSSFWorkbook.getSheet(): Return first found sheet
authorDominik Stadler <centic@apache.org>
Sun, 7 Jul 2024 05:03:15 +0000 (05:03 +0000)
committerDominik Stadler <centic@apache.org>
Sun, 7 Jul 2024 05:03:15 +0000 (05:03 +0000)
We do not need to loop over all sheets always but should
be able to return the first found sheet.

This may change semantics for cases where there are
multiple sheets where name only differs in case, but
the JavaDoc did not state which one will be returned.

All three implementations (HSSF, XSSF, SXSSF)
now behave the same way.

Closes #653

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1918982 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java
poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java

index da64a880f2af391692c09614ace9d89b8f0fad94..401529839bd464c88fd1d065067b7f7be49b812d 100644 (file)
@@ -808,6 +808,9 @@ public class SXSSFWorkbook implements Workbook {
     /**
      * Get sheet with the given name
      *
+     * If there are multiple matches, the first sheet from the list
+     * of sheets is returned.
+     *
      * @param name of the sheet
      * @return Sheet with the name provided or <code>null</code> if it does not exist
      */
index 7c03b27fa420072846c891c7948c8337c94e35d0..3703f0dd4b748583b3be59d20b254626c21d872a 100644 (file)
@@ -1208,6 +1208,9 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Date1904Su
     /**
      * Get sheet with the given name (case insensitive match)
      *
+     * If there are multiple matches, the first sheet from the list
+     * of sheets is returned.
+     *
      * @param name of the sheet
      * @return XSSFSheet with the name provided or {@code null} if it does not exist
      */
index 336fc2bc3e43c2c9d82ccc4e69b81192ca3fb6ec..9442589189d8759e75b161ffbc8cb0e1e7105de9 100644 (file)
@@ -1055,24 +1055,25 @@ public final class HSSFWorkbook extends POIDocument implements Workbook {
     }
 
     /**
-     * Get sheet with the given name (case insensitive match)
+     * Get sheet with the given name (case insensitive match).
+     *
+     * If there are multiple matches, the first sheet from the list
+     * of sheets is returned.
      *
      * @param name of the sheet
      * @return HSSFSheet with the name provided or {@code null} if it does not exist
      */
-
     @Override
     public HSSFSheet getSheet(String name) {
-        HSSFSheet retval = null;
-
         for (int k = 0; k < _sheets.size(); k++) {
             String sheetname = workbook.getSheetName(k);
 
             if (sheetname.equalsIgnoreCase(name)) {
-                retval = _sheets.get(k);
+                return _sheets.get(k);
             }
         }
-        return retval;
+
+        return null;
     }
 
     /**