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! -->
|
<!-- Don't forget to update status.xml too! -->
|
||||||
<release version="3.1-beta2" date="2008-05-??">
|
<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">44886] - Correctly process PICT metafile in EscherMetafileBlip</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">44893 - Correctly handle merged regions in HSSFSheet.autoSizeColumn</action>
|
<action dev="POI-DEVELOPERS" type="fix">44893 - Correctly handle merged regions in HSSFSheet.autoSizeColumn</action>
|
||||||
</release>
|
</release>
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
<!-- Don't forget to update changes.xml too! -->
|
<!-- Don't forget to update changes.xml too! -->
|
||||||
<changes>
|
<changes>
|
||||||
<release version="3.1-beta2" date="2008-05-??">
|
<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">44886] - Correctly process PICT metafile in EscherMetafileBlip</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">44893 - Correctly handle merged regions in HSSFSheet.autoSizeColumn</action>
|
<action dev="POI-DEVELOPERS" type="fix">44893 - Correctly handle merged regions in HSSFSheet.autoSizeColumn</action>
|
||||||
</release>
|
</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.
|
* @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.
|
* @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++ )
|
for ( int i = 0; i < boundsheets.size(); i++ )
|
||||||
{
|
{
|
||||||
BoundSheetRecord boundSheetRecord = (BoundSheetRecord) boundsheets.get( i );
|
BoundSheetRecord boundSheetRecord = (BoundSheetRecord) boundsheets.get( i );
|
||||||
if (excludeSheetIdx != i && name.equals(boundSheetRecord.getSheetname()))
|
if (excludeSheetIdx != i && name.equalsIgnoreCase(boundSheetRecord.getSheetname()))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -600,6 +600,8 @@ public class HSSFWorkbook extends POIDocument
|
|||||||
*
|
*
|
||||||
* @param sheetname sheetname to set for the sheet.
|
* @param sheetname sheetname to set for the sheet.
|
||||||
* @return HSSFSheet representing the new 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)
|
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
|
* @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)
|
public HSSFSheet getSheet(String name)
|
||||||
@ -652,7 +654,7 @@ public class HSSFWorkbook extends POIDocument
|
|||||||
{
|
{
|
||||||
String sheetname = workbook.getSheetName(k);
|
String sheetname = workbook.getSheetName(k);
|
||||||
|
|
||||||
if (sheetname.equals(name))
|
if (sheetname.equalsIgnoreCase(name))
|
||||||
{
|
{
|
||||||
retval = (HSSFSheet) sheets.get(k);
|
retval = (HSSFSheet) sheets.get(k);
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
package org.apache.poi.hssf.usermodel;
|
package org.apache.poi.hssf.usermodel;
|
||||||
|
|
||||||
|
import junit.framework.AssertionFailedError;
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
import org.apache.poi.hssf.HSSFTestDataSamples;
|
import org.apache.poi.hssf.HSSFTestDataSamples;
|
||||||
@ -39,7 +40,24 @@ public final class TestHSSFWorkbook extends TestCase {
|
|||||||
NameRecord nameRecord = b.getWorkbook().getNameRecord( 0 );
|
NameRecord nameRecord = b.getWorkbook().getNameRecord( 0 );
|
||||||
assertEquals( 3, nameRecord.getIndexToSheet() );
|
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() {
|
public void testDuplicateNames() {
|
||||||
HSSFWorkbook b = new HSSFWorkbook( );
|
HSSFWorkbook b = new HSSFWorkbook( );
|
||||||
b.createSheet("Sheet1");
|
b.createSheet("Sheet1");
|
||||||
|
Loading…
Reference in New Issue
Block a user