Patch from Kamil Linek from bug #57071 - 3+ XSSF column label names for pivot tables

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1647088 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2014-12-21 06:20:06 +00:00
parent a84b1030bb
commit 5b85ab60cf
2 changed files with 42 additions and 3 deletions

View File

@ -296,8 +296,8 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
addDataColumn(columnIndex, true);
addDataField(function, columnIndex, valueFieldName);
//Only add colfield if there is already one.
if (pivotTableDefinition.getDataFields().getCount() > 1) {
// colfield should be added for the second one.
if (pivotTableDefinition.getDataFields().getCount() == 2) {
CTColFields colFields;
if(pivotTableDefinition.getColFields() != null) {
colFields = pivotTableDefinition.getColFields();

View File

@ -46,6 +46,8 @@ public class TestXSSFPivotTable extends TestCase {
cell2.setCellValue("#");
Cell cell7 = row1.createCell(2);
cell7.setCellValue("Data");
Cell cell10 = row1.createCell(3);
cell10.setCellValue("Value");
Row row2 = sheet.createRow(1);
Cell cell3 = row2.createCell(0);
@ -54,6 +56,8 @@ public class TestXSSFPivotTable extends TestCase {
cell4.setCellValue(10);
Cell cell8 = row2.createCell(2);
cell8.setCellValue("Apa");
Cell cell11 = row1.createCell(3);
cell11.setCellValue(11.11);
Row row3 = sheet.createRow(2);
Cell cell5 = row3.createCell(0);
@ -62,8 +66,10 @@ public class TestXSSFPivotTable extends TestCase {
cell6.setCellValue(9);
Cell cell9 = row3.createCell(2);
cell9.setCellValue("Bepa");
Cell cell12 = row1.createCell(3);
cell12.setCellValue(12.12);
AreaReference source = new AreaReference("A1:B2");
AreaReference source = new AreaReference("A1:C2");
pivotTable = sheet.createPivotTable(source, new CellReference("H5"));
}
@ -116,6 +122,39 @@ public class TestXSSFPivotTable extends TestCase {
assertEquals(defintion.getColFields(), null);
}
/**
* Verify that it's possible to create three column labels with different DataConsolidateFunction
*/
public void testAddThreeDifferentColumnLabelsToPivotTable() {
int columnOne = 0;
int columnTwo = 1;
int columnThree = 2;
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, columnOne);
pivotTable.addColumnLabel(DataConsolidateFunction.MAX, columnTwo);
pivotTable.addColumnLabel(DataConsolidateFunction.MIN, columnThree);
CTPivotTableDefinition defintion = pivotTable.getCTPivotTableDefinition();
assertEquals(defintion.getDataFields().getDataFieldList().size(), 3);
}
/**
* Verify that it's possible to create three column labels with the same DataConsolidateFunction
*/
public void testAddThreeSametColumnLabelsToPivotTable() {
int columnOne = 0;
int columnTwo = 1;
int columnThree = 2;
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, columnOne);
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, columnTwo);
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, columnThree);
CTPivotTableDefinition defintion = pivotTable.getCTPivotTableDefinition();
assertEquals(defintion.getDataFields().getDataFieldList().size(), 3);
}
/**
* Verify that when creating two column labels, a col field is being created and X is set to -2.
*/