diff options
author | Vladislav Galas <gallon@apache.org> | 2019-01-26 19:41:25 +0000 |
---|---|---|
committer | Vladislav Galas <gallon@apache.org> | 2019-01-26 19:41:25 +0000 |
commit | 39d963aa3335c858ef77b4ad0eef27bdd092c88c (patch) | |
tree | 5b20b28df6ad1b70a4843bab3fb971e17d1b6e14 /src/ooxml | |
parent | 19bf8b23d5dacee226c70cece3a315e5f1e47616 (diff) | |
download | poi-39d963aa3335c858ef77b4ad0eef27bdd092c88c.tar.gz poi-39d963aa3335c858ef77b4ad0eef27bdd092c88c.zip |
made call Cell.setCellType(CellType.FORMULA) illegall. Deprecated Cell.setCellType(). Purged all redundant calls from project.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1852246 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/ooxml')
6 files changed, 35 insertions, 18 deletions
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java index 6b77b91eff..8ace06e95a 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java @@ -425,8 +425,6 @@ public class XSSFPivotTable extends POIXMLDocumentPart { private void addDataField(DataConsolidateFunction function, int columnIndex, String valueFieldName, String valueFormat) { checkColumnIndex(columnIndex); - AreaReference pivotArea = getPivotArea(); - CTDataFields dataFields; if(pivotTableDefinition.getDataFields() != null) { dataFields = pivotTableDefinition.getDataFields(); @@ -435,9 +433,6 @@ public class XSSFPivotTable extends POIXMLDocumentPart { } CTDataField dataField = dataFields.addNewDataField(); dataField.setSubtotal(STDataConsolidateFunction.Enum.forInt(function.getValue())); - Cell cell = getDataSheet().getRow(pivotArea.getFirstCell().getRow()) - .getCell(pivotArea.getFirstCell().getCol() + columnIndex); - cell.setCellType(CellType.STRING); dataField.setName(valueFieldName); dataField.setFld(columnIndex); if (valueFormat != null && !valueFormat.trim().isEmpty()) { diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java index e7671c5968..57df559f95 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java @@ -28,6 +28,7 @@ import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellCopyPolicy; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.FormulaError; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.helpers.RowShifter; import org.apache.poi.ss.util.CellRangeAddress; @@ -220,12 +221,33 @@ public class XSSFRow implements Row, Comparable<XSSFRow> { } XSSFCell xcell = new XSSFCell(this, ctCell); xcell.setCellNum(columnIndex); - if (type != CellType.BLANK) { - xcell.setCellType(type); + if (type != CellType.BLANK && type != CellType.FORMULA) { + setDefaultValue(xcell, type); } + _cells.put(colI, xcell); return xcell; } + + private static void setDefaultValue(XSSFCell cell, CellType type) { + switch (type) { + case NUMERIC: + cell.setCellValue(0); + break; + case STRING: + cell.setCellValue(""); + break; + case BOOLEAN: + cell.setCellValue(false); + break; + case ERROR: + cell.setCellErrorValue(FormulaError._NO_ERROR); + break; + default: + throw new AssertionError(); + } + } + /** * Returns the cell at the given (0 based) index, * with the {@link org.apache.poi.ss.usermodel.Row.MissingCellPolicy} from the parent Workbook. @@ -588,7 +610,7 @@ public class XSSFRow implements Row, Comparable<XSSFRow> { else { for (final Cell c : srcRow){ final XSSFCell srcCell = (XSSFCell)c; - final XSSFCell destCell = createCell(srcCell.getColumnIndex(), srcCell.getCellType()); + final XSSFCell destCell = createCell(srcCell.getColumnIndex()); destCell.copyCellFrom(srcCell, policy); } diff --git a/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestProper.java b/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestProper.java index a56a8682ff..2296b6a4a9 100644 --- a/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestProper.java +++ b/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestProper.java @@ -59,7 +59,6 @@ public final class TestProper { private void confirm(Workbook wb) { Sheet sheet = wb.createSheet("new sheet"); cell11 = sheet.createRow(0).createCell(0); - cell11.setCellType(CellType.FORMULA); confirm("PROPER(\"hi there\")", "Hi There"); //simple case confirm("PROPER(\"what's up\")", "What'S Up"); //apostrophes are treated as word breaks diff --git a/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java b/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java index eda6dc0ac3..46f01eb850 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java @@ -537,20 +537,16 @@ public final class TestXSSFExportToXML { Cell cFormulaString = row.createCell(3); cFormulaString.setCellFormula("A1"); - cFormulaString.setCellType(CellType.FORMULA); - + Cell cFormulaNumeric = row.createCell(4); cFormulaNumeric.setCellFormula("F1"); - cFormulaNumeric.setCellType(CellType.FORMULA); - + Cell cNumeric = row.createCell(5); cNumeric.setCellValue(1.2); - cNumeric.setCellType(CellType.NUMERIC); - + Cell cDate = row.createCell(6); cDate.setCellValue(new Date()); - cDate.setCellType(CellType.NUMERIC); - + boolean found = false; for (POIXMLDocumentPart p : wb.getRelations()) { diff --git a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java index e696378667..c834cd528b 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java @@ -187,4 +187,9 @@ public class TestSXSSFCell extends BaseTestXCell { @Ignore public void setCellFormula_isExceptionSafe_onBlankCell() { } + + @Test + @Ignore + public void setCellType_FORMULA_onAnArrayFormulaCell_doesNothing() { + } } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java index 7ed41f9c6d..99d95e1b5b 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java @@ -626,7 +626,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { // Otherwise should go sheet.getRow(1).getCell(0).setCellFormula("A1"); // stay sheet.getRow(2).getCell(0).setCellFormula(null); // go - sheet.getRow(3).getCell(0).setCellType(CellType.FORMULA); // stay + sheet.getRow(3).getCell(0).setCellFormula("14"); // stay XSSFTestDataSamples.writeOutAndReadBack(wb1).close(); sheet.getRow(4).getCell(0).setCellType(CellType.STRING); // go |