diff options
author | Yegor Kozlov <yegor@apache.org> | 2009-04-18 07:12:38 +0000 |
---|---|---|
committer | Yegor Kozlov <yegor@apache.org> | 2009-04-18 07:12:38 +0000 |
commit | 46b06af35a59c1bb1ce4ee91d32106ab124287b0 (patch) | |
tree | 36d6797927f334518b42b3d8deb5cdab8da16ed5 /src/ooxml/java | |
parent | 9eff4e10b36d171ed5a33771066b779604897aff (diff) | |
download | poi-46b06af35a59c1bb1ce4ee91d32106ab124287b0.tar.gz poi-46b06af35a59c1bb1ce4ee91d32106ab124287b0.zip |
Allow 255 arguments for excel functions in XSSF, see bugzilla 46279
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@766251 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/ooxml/java')
5 files changed, 10 insertions, 30 deletions
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java index 2a0e1ff4b2..6bbcf1a8c6 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java @@ -366,14 +366,8 @@ public final class XSSFCell implements Cell { } XSSFEvaluationWorkbook fpb = XSSFEvaluationWorkbook.create(wb); - try { - Ptg[] ptgs = FormulaParser.parse(formula, fpb, FormulaType.CELL, wb.getSheetIndex(getSheet())); - } catch (RuntimeException e) { - if (e.getClass().getName().startsWith(FormulaParser.class.getName())) { - throw new IllegalArgumentException("Unparsable formula '" + formula + "'", e); - } - throw e; - } + //validate through the FormulaParser + FormulaParser.parse(formula, fpb, FormulaType.CELL, wb.getSheetIndex(getSheet())); CTCellFormula f = CTCellFormula.Factory.newInstance(); f.setStringValue(formula); diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java index f733a67bd1..ef2bdf89b3 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java @@ -21,6 +21,7 @@ import org.apache.poi.hssf.record.formula.NamePtg; import org.apache.poi.hssf.record.formula.NameXPtg;
import org.apache.poi.hssf.record.formula.Ptg;
import org.apache.poi.ss.formula.*;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
/**
@@ -172,4 +173,8 @@ public final class XSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E return new NamePtg(_index);
}
}
+
+ public SpreadsheetVersion getSpreadsheetVersion(){
+ return SpreadsheetVersion.EXCEL2007;
+ }
}
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java index 9f3c7f0125..ed4d364abe 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java @@ -191,14 +191,9 @@ public final class XSSFName implements Name { public void setRefersToFormula(String formulaText) { XSSFEvaluationWorkbook fpb = XSSFEvaluationWorkbook.create(workbook); - try { - FormulaParser.parse(formulaText, fpb, FormulaType.NAMEDRANGE, getSheetIndex()); - } catch (RuntimeException e) { - if (e.getClass().getName().startsWith(FormulaParser.class.getName())) { - throw new IllegalArgumentException("Unparsable formula '" + formulaText + "'", e); - } - throw e; - } + //validate through the FormulaParser + FormulaParser.parse(formulaText, fpb, FormulaType.NAMEDRANGE, getSheetIndex()); + ctName.setStringValue(formulaText); } 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 4cc3db4e56..4cd7c41634 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRow.java @@ -22,19 +22,12 @@ import java.util.*; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.util.CellReference; -import org.apache.poi.ss.formula.FormulaParser; -import org.apache.poi.ss.formula.FormulaType; -import org.apache.poi.ss.formula.FormulaRenderer; import org.apache.poi.ss.SpreadsheetVersion; import org.apache.poi.xssf.model.CalculationChain; -import org.apache.poi.hssf.record.formula.Ptg; -import org.apache.poi.hssf.record.formula.FormulaShifter; -import org.apache.poi.hssf.record.SharedFormulaRecord; import org.apache.poi.util.POILogger; import org.apache.poi.util.POILogFactory; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow; -import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellFormula; /** * High level representation of a row of a spreadsheet. diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java index 80d383d759..242f24f048 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java @@ -24,19 +24,12 @@ import java.util.*; import javax.xml.namespace.QName; import org.apache.poi.hssf.util.PaneInformation; -import org.apache.poi.hssf.record.formula.Ptg; import org.apache.poi.hssf.record.formula.FormulaShifter; -import org.apache.poi.hssf.record.SharedFormulaRecord; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellReference; -import org.apache.poi.ss.util.AreaReference; -import org.apache.poi.ss.formula.FormulaParser; -import org.apache.poi.ss.formula.FormulaType; -import org.apache.poi.ss.formula.FormulaRenderer; import org.apache.poi.ss.SpreadsheetVersion; import org.apache.poi.xssf.model.CommentsTable; -import org.apache.poi.xssf.model.CalculationChain; import org.apache.poi.xssf.usermodel.helpers.ColumnHelper; import org.apache.poi.xssf.usermodel.helpers.XSSFRowShifter; import org.apache.poi.POIXMLDocumentPart; |