You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by on...@apache.org on 2015/10/31 12:39:01 UTC
svn commit: r1711600 - in /poi/trunk/src:
java/org/apache/poi/hssf/usermodel/ java/org/apache/poi/ss/formula/
java/org/apache/poi/ss/formula/ptg/ ooxml/java/org/apache/poi/xssf/usermodel/
ooxml/testcases/org/apache/poi/xssf/
Author: onealj
Date: Sat Oct 31 11:39:01 2015
New Revision: 1711600
URL: http://svn.apache.org/viewvc?rev=1711600&view=rev
Log:
supporting changes for bug 58452: copy cell formulas containing unregistered function names
Modified:
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java
poi/trunk/src/java/org/apache/poi/ss/formula/FormulaParsingWorkbook.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java
Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java?rev=1711600&r1=1711599&r2=1711600&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFEvaluationWorkbook.java Sat Oct 31 11:39:01 2015
@@ -62,6 +62,11 @@ public final class HSSFEvaluationWorkboo
_uBook = book;
_iBook = book.getWorkbook();
}
+
+ @Override
+ public HSSFName createName() {
+ return _uBook.createName();
+ }
public int getExternalSheetIndex(String sheetName) {
int sheetIndex = _uBook.getSheetIndex(sheetName);
@@ -79,6 +84,10 @@ public final class HSSFEvaluationWorkboo
int extIx = getSheetExtIx(sheet);
return new Area3DPtg(areaRef, extIx);
}
+ /**
+ * Return an external name (named range, function, user-defined function) Ptg
+ */
+ @Override
public NameXPtg getNameXPtg(String name, SheetIdentifier sheet) {
int sheetRefIndex = getSheetExtIx(sheet);
return _iBook.getNameXPtg(name, sheetRefIndex, _uBook.getUDFFinder());
Modified: poi/trunk/src/java/org/apache/poi/ss/formula/FormulaParsingWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/FormulaParsingWorkbook.java?rev=1711600&r1=1711599&r2=1711600&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/FormulaParsingWorkbook.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/FormulaParsingWorkbook.java Sat Oct 31 11:39:01 2015
@@ -19,6 +19,7 @@ package org.apache.poi.ss.formula;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.ptg.Ptg;
+import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellReference;
@@ -34,7 +35,15 @@ public interface FormulaParsingWorkbook
* named range name matching is case insensitive
*/
EvaluationName getName(String name, int sheetIndex);
+
+ /**
+ * Return the underlying workbook
+ */
+ Name createName();
+ /**
+ * Return an external name (named range, function, user-defined function) Ptg
+ */
Ptg getNameXPtg(String name, SheetIdentifier sheet);
/**
Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java?rev=1711600&r1=1711599&r2=1711600&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java Sat Oct 31 11:39:01 2015
@@ -40,6 +40,9 @@ public final class NameXPxg extends Oper
public NameXPxg(String sheetName, String nameName) {
this(-1, sheetName, nameName);
}
+ public NameXPxg(String nameName) {
+ this(-1, null, nameName);
+ }
public String toString(){
StringBuffer sb = new StringBuffer();
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java?rev=1711600&r1=1711599&r2=1711600&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java Sat Oct 31 11:39:01 2015
@@ -130,6 +130,15 @@ public abstract class BaseXSSFEvaluation
}
}
+ /**
+ * Return EvaluationName wrapper around the matching XSSFName (named range)
+ * @param name case-aware but case-insensitive named range in workbook
+ * @param sheetIndex index of sheet if named range scope is limited to one sheet
+ * if named range scope is global to the workbook, sheetIndex is -1.
+ * @return If name is a named range in the workbook, returns
+ * EvaluationName corresponding to that named range
+ * Returns null if there is no named range with the same name and scope in the workbook
+ */
public EvaluationName getName(String name, int sheetIndex) {
for (int i = 0; i < _uBook.getNumberOfNames(); i++) {
XSSFName nm = _uBook.getNameAt(i);
@@ -137,7 +146,7 @@ public abstract class BaseXSSFEvaluation
int nameSheetindex = nm.getSheetIndex();
if (name.equalsIgnoreCase(nameText) &&
(nameSheetindex == -1 || nameSheetindex == sheetIndex)) {
- return new Name(_uBook.getNameAt(i), i, this);
+ return new Name(nm, i, this);
}
}
return sheetIndex == -1 ? null : getName(name, -1);
@@ -179,6 +188,10 @@ public abstract class BaseXSSFEvaluation
}
+ /**
+ * Return an external name (named range, function, user-defined function) Pxg
+ */
+ @Override
public NameXPxg getNameXPtg(String name, SheetIdentifier sheet) {
// First, try to find it as a User Defined Function
IndexedUDFFinder udfFinder = (IndexedUDFFinder)getUDFFinder();
@@ -290,6 +303,10 @@ public abstract class BaseXSSFEvaluation
int ix = namePtg.getIndex();
return new Name(_uBook.getNameAt(ix), ix, this);
}
+ @Override
+ public XSSFName createName() {
+ return _uBook.createName();
+ }
public UDFFinder getUDFFinder(){
return _uBook.getUDFFinder();
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java?rev=1711600&r1=1711599&r2=1711600&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java Sat Oct 31 11:39:01 2015
@@ -44,6 +44,9 @@ public class XSSFTestDataSamples {
*/
public static final String TEST_OUTPUT_DIR = "poi.test.xssf.output.dir";
+ public static File getSampleFile(String sampleFileName) {
+ return HSSFTestDataSamples.getSampleFile(sampleFileName);
+ }
public static OPCPackage openSamplePackage(String sampleName) {
try {
return OPCPackage.open(
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org