HSSFWorkbook.getSheet(): Return first found sheet

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
This commit is contained in:
Dominik Stadler 2024-07-07 05:03:15 +00:00
parent d090c6b77a
commit 164c239a52
3 changed files with 13 additions and 6 deletions

View 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
*/

View 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
*/

View 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;
}
/**