Browse Source

Bit more towards XSSF name support for #56737, will need some deeper changes though to fully implement

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1611830 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_11_BETA1
Nick Burch 9 years ago
parent
commit
de3ba9dc6a

+ 26
- 3
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java View File

@@ -103,16 +103,39 @@ public final class XSSFEvaluationWorkbook implements FormulaRenderingWorkbook, E
}

public NameXPtg getNameXPtg(String name, int sheetRefIndex) {
// First, try to find it as a User Defined Function
IndexedUDFFinder udfFinder = (IndexedUDFFinder)getUDFFinder();
FreeRefFunction func = udfFinder.findFunction(name);
if(func == null) return null;
else return new NameXPtg(0, udfFinder.getFunctionIndex(name));
if (func != null) {
return new NameXPtg(0, udfFinder.getFunctionIndex(name));
}
// Otherwise, try it as a named range
XSSFName xname = _uBook.getName(name);
if (xname != null) {
int nameAt = _uBook.getNameIndex(name);
return new NameXPtg(xname.getSheetIndex(), nameAt);
} else {
return null;
}
}

public String resolveNameXText(NameXPtg n) {
int idx = n.getNameIndex();
String name = null;
// First, try to find it as a User Defined Function
IndexedUDFFinder udfFinder = (IndexedUDFFinder)getUDFFinder();
return udfFinder.getFunctionName(idx);
name = udfFinder.getFunctionName(idx);
if (name != null) return name;
// Otherwise, try it as a named range
XSSFName xname = _uBook.getNameAt(idx);
if (xname != null) {
name = xname.getNameName();
}
return name;
}

public EvaluationSheet getSheet(int sheetIndex) {

+ 0
- 5
src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java View File

@@ -2678,10 +2678,5 @@ public final class TestBugs extends BaseTestBugzillaIssues {
// Try to evaluate everything
eval.evaluateAll();
// Try to set the same kinds of formula elsewhere
Cell newF = s.getRow(0).createCell(10, Cell.CELL_TYPE_FORMULA);
// TODO Fix this
//newF.setCellFormula("Defines!NR_To_A1");
}
}

BIN
test-data/spreadsheet/ref-56737.xlsx View File


Loading…
Cancel
Save