fixed bug 44892 - made HSSFWorkbook.getSheet(String) case insensitive
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@652426 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d0ca2bfeb7
commit
993bf57633
@ -37,6 +37,7 @@
|
||||
|
||||
<!-- Don't forget to update status.xml too! -->
|
||||
<release version="3.1-beta2" date="2008-05-??">
|
||||
<action dev="POI-DEVELOPERS" type="fix">44892 - made HSSFWorkbook.getSheet(String) case insensitive</action>
|
||||
<action dev="POI-DEVELOPERS" type="fix">44886] - Correctly process PICT metafile in EscherMetafileBlip</action>
|
||||
<action dev="POI-DEVELOPERS" type="fix">44893 - Correctly handle merged regions in HSSFSheet.autoSizeColumn</action>
|
||||
</release>
|
||||
|
@ -34,6 +34,7 @@
|
||||
<!-- Don't forget to update changes.xml too! -->
|
||||
<changes>
|
||||
<release version="3.1-beta2" date="2008-05-??">
|
||||
<action dev="POI-DEVELOPERS" type="fix">44892 - made HSSFWorkbook.getSheet(String) case insensitive</action>
|
||||
<action dev="POI-DEVELOPERS" type="fix">44886] - Correctly process PICT metafile in EscherMetafileBlip</action>
|
||||
<action dev="POI-DEVELOPERS" type="fix">44893 - Correctly handle merged regions in HSSFSheet.autoSizeColumn</action>
|
||||
</release>
|
||||
|
@ -476,9 +476,9 @@ public class Workbook implements Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether a workbook contains the privided sheet name.
|
||||
* Determines whether a workbook contains the provided sheet name.
|
||||
*
|
||||
* @param name the name to test
|
||||
* @param name the name to test (case insensitive match)
|
||||
* @param excludeSheetIdx the sheet to exclude from the check or -1 to include all sheets in the check.
|
||||
* @return true if the sheet contains the name, false otherwise.
|
||||
*/
|
||||
@ -487,7 +487,7 @@ public class Workbook implements Model
|
||||
for ( int i = 0; i < boundsheets.size(); i++ )
|
||||
{
|
||||
BoundSheetRecord boundSheetRecord = (BoundSheetRecord) boundsheets.get( i );
|
||||
if (excludeSheetIdx != i && name.equals(boundSheetRecord.getSheetname()))
|
||||
if (excludeSheetIdx != i && name.equalsIgnoreCase(boundSheetRecord.getSheetname()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -600,6 +600,8 @@ public class HSSFWorkbook extends POIDocument
|
||||
*
|
||||
* @param sheetname sheetname to set for the sheet.
|
||||
* @return HSSFSheet representing the new sheet.
|
||||
* @throws IllegalArgumentException if there is already a sheet present with a case-insensitive
|
||||
* match for the specified name.
|
||||
*/
|
||||
|
||||
public HSSFSheet createSheet(String sheetname)
|
||||
@ -639,9 +641,9 @@ public class HSSFWorkbook extends POIDocument
|
||||
}
|
||||
|
||||
/**
|
||||
* Get sheet with the given name
|
||||
* Get sheet with the given name (case insensitive match)
|
||||
* @param name of the sheet
|
||||
* @return HSSFSheet with the name provided or null if it does not exist
|
||||
* @return HSSFSheet with the name provided or <code>null</code> if it does not exist
|
||||
*/
|
||||
|
||||
public HSSFSheet getSheet(String name)
|
||||
@ -652,7 +654,7 @@ public class HSSFWorkbook extends POIDocument
|
||||
{
|
||||
String sheetname = workbook.getSheetName(k);
|
||||
|
||||
if (sheetname.equals(name))
|
||||
if (sheetname.equalsIgnoreCase(name))
|
||||
{
|
||||
retval = (HSSFSheet) sheets.get(k);
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
package org.apache.poi.hssf.usermodel;
|
||||
|
||||
import junit.framework.AssertionFailedError;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.apache.poi.hssf.HSSFTestDataSamples;
|
||||
@ -39,7 +40,24 @@ public final class TestHSSFWorkbook extends TestCase {
|
||||
NameRecord nameRecord = b.getWorkbook().getNameRecord( 0 );
|
||||
assertEquals( 3, nameRecord.getIndexToSheet() );
|
||||
}
|
||||
|
||||
|
||||
public void testCaseInsensitiveNames() {
|
||||
HSSFWorkbook b = new HSSFWorkbook( );
|
||||
HSSFSheet originalSheet = b.createSheet("Sheet1");
|
||||
HSSFSheet fetchedSheet = b.getSheet("sheet1");
|
||||
if(fetchedSheet == null) {
|
||||
throw new AssertionFailedError("Identified bug 44892");
|
||||
}
|
||||
assertEquals(originalSheet, fetchedSheet);
|
||||
try {
|
||||
b.createSheet("sHeeT1");
|
||||
fail("should have thrown exceptiuon due to duplicate sheet name");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// expected during successful test
|
||||
assertEquals("The workbook already contains a sheet of this name", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public void testDuplicateNames() {
|
||||
HSSFWorkbook b = new HSSFWorkbook( );
|
||||
b.createSheet("Sheet1");
|
||||
|
Loading…
Reference in New Issue
Block a user