sheet names are case insensitive
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1760814 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
39752a5643
commit
5b79b4da90
@ -4165,9 +4165,9 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
|||||||
* @return The pivot table
|
* @return The pivot table
|
||||||
*/
|
*/
|
||||||
@Beta
|
@Beta
|
||||||
public XSSFPivotTable createPivotTable(AreaReference source, CellReference position, Sheet sourceSheet){
|
public XSSFPivotTable createPivotTable(AreaReference source, CellReference position, Sheet sourceSheet) {
|
||||||
|
final String sourceSheetName = source.getFirstCell().getSheetName();
|
||||||
if(source.getFirstCell().getSheetName() != null && !source.getFirstCell().getSheetName().equals(sourceSheet.getSheetName())) {
|
if(sourceSheetName != null && !sourceSheetName.equalsIgnoreCase(sourceSheet.getSheetName())) {
|
||||||
throw new IllegalArgumentException("The area is referenced in another sheet than the "
|
throw new IllegalArgumentException("The area is referenced in another sheet than the "
|
||||||
+ "defined source sheet " + sourceSheet.getSheetName() + ".");
|
+ "defined source sheet " + sourceSheet.getSheetName() + ".");
|
||||||
}
|
}
|
||||||
@ -4193,8 +4193,10 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
|||||||
*/
|
*/
|
||||||
@Beta
|
@Beta
|
||||||
public XSSFPivotTable createPivotTable(AreaReference source, CellReference position){
|
public XSSFPivotTable createPivotTable(AreaReference source, CellReference position){
|
||||||
if(source.getFirstCell().getSheetName() != null && !source.getFirstCell().getSheetName().equals(this.getSheetName())) {
|
final String sourceSheetName = source.getFirstCell().getSheetName();
|
||||||
return createPivotTable(source, position, getWorkbook().getSheet(source.getFirstCell().getSheetName()));
|
if(sourceSheetName != null && !sourceSheetName.equalsIgnoreCase(this.getSheetName())) {
|
||||||
|
final XSSFSheet sourceSheet = getWorkbook().getSheet(sourceSheetName);
|
||||||
|
return createPivotTable(source, position, sourceSheet);
|
||||||
}
|
}
|
||||||
return createPivotTable(source, position, this);
|
return createPivotTable(source, position, this);
|
||||||
}
|
}
|
||||||
|
@ -17,11 +17,11 @@
|
|||||||
package org.apache.poi.xssf.usermodel;
|
package org.apache.poi.xssf.usermodel;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.poi.ss.SpreadsheetVersion;
|
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
import org.apache.poi.ss.usermodel.CellType;
|
import org.apache.poi.ss.usermodel.CellType;
|
||||||
import org.apache.poi.ss.usermodel.DataConsolidateFunction;
|
import org.apache.poi.ss.usermodel.DataConsolidateFunction;
|
||||||
@ -350,4 +350,21 @@ public class TestXSSFPivotTable {
|
|||||||
|
|
||||||
offsetPivotTable.addColumnLabel(DataConsolidateFunction.SUM, 0);
|
offsetPivotTable.addColumnLabel(DataConsolidateFunction.SUM, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testPivotTableSheetNamesAreCaseInsensitive() {
|
||||||
|
wb.setSheetName(0, "original");
|
||||||
|
wb.setSheetName(1, "offset");
|
||||||
|
XSSFSheet original = wb.getSheet("OriginaL");
|
||||||
|
XSSFSheet offset = wb.getSheet("OffseT");
|
||||||
|
// assume sheets are accessible via case-insensitive name
|
||||||
|
assertNotNull(original);
|
||||||
|
assertNotNull(offset);
|
||||||
|
|
||||||
|
AreaReference source = new AreaReference("ORIGinal!A1:C2", _testDataProvider.getSpreadsheetVersion());
|
||||||
|
// create a pivot table on the same sheet, case insensitive
|
||||||
|
original.createPivotTable(source, new CellReference("W1"));
|
||||||
|
// create a pivot table on a different sheet, case insensitive
|
||||||
|
offset.createPivotTable(source, new CellReference("W1"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user