diff --git a/src/java/org/apache/poi/ss/formula/OperationEvaluationContext.java b/src/java/org/apache/poi/ss/formula/OperationEvaluationContext.java index 6dba12aba..ce918926c 100644 --- a/src/java/org/apache/poi/ss/formula/OperationEvaluationContext.java +++ b/src/java/org/apache/poi/ss/formula/OperationEvaluationContext.java @@ -79,8 +79,8 @@ public final class OperationEvaluationContext { SheetRangeEvaluator createExternSheetRefEvaluator(ExternSheetReferenceToken ptg) { return createExternSheetRefEvaluator(ptg.getExternSheetIndex()); } - SheetRangeEvaluator createExternSheetRefEvaluator(String sheetName, int externalWorkbookNumber) { - ExternalSheet externalSheet = _workbook.getExternalSheet(sheetName, null, externalWorkbookNumber); + SheetRangeEvaluator createExternSheetRefEvaluator(String firstSheetName, String lastSheetName, int externalWorkbookNumber) { + ExternalSheet externalSheet = _workbook.getExternalSheet(firstSheetName, lastSheetName, externalWorkbookNumber); return createExternSheetRefEvaluator(externalSheet); } SheetRangeEvaluator createExternSheetRefEvaluator(int externSheetIndex) { @@ -306,7 +306,8 @@ public final class OperationEvaluationContext { return new LazyRefEval(rptg.getRow(), rptg.getColumn(), sre); } public ValueEval getRef3DEval(Ref3DPxg rptg) { - SheetRangeEvaluator sre = createExternSheetRefEvaluator(rptg.getSheetName(), rptg.getExternalWorkbookNumber()); + SheetRangeEvaluator sre = createExternSheetRefEvaluator( + rptg.getSheetName(), rptg.getLastSheetName(), rptg.getExternalWorkbookNumber()); return new LazyRefEval(rptg.getRow(), rptg.getColumn(), sre); } @@ -321,7 +322,8 @@ public final class OperationEvaluationContext { aptg.getLastRow(), aptg.getLastColumn(), sre); } public ValueEval getArea3DEval(Area3DPxg aptg) { - SheetRangeEvaluator sre = createExternSheetRefEvaluator(aptg.getSheetName(), aptg.getExternalWorkbookNumber()); + SheetRangeEvaluator sre = createExternSheetRefEvaluator( + aptg.getSheetName(), aptg.getLastSheetName(), aptg.getExternalWorkbookNumber()); return new LazyAreaEval(aptg.getFirstRow(), aptg.getFirstColumn(), aptg.getLastRow(), aptg.getLastColumn(), sre); } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java index 9542c9269..09c45f040 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java @@ -184,10 +184,8 @@ public final class TestXSSFFormulaEvaluation extends BaseTestFormulaEvaluator { * Sheets 1 through Sheet 3). * This test, based on common test files for HSSF and XSSF, checks * that we can correctly evaluate these - * - * TODO Fix this to pass for XSSF too, currently only passes for HSSF... */ - public void DISABLEDtestMultiSheetReferencesHSSFandXSSF() throws Exception { + public void testMultiSheetReferencesHSSFandXSSF() throws Exception { Workbook[] wbs = new Workbook[] { HSSFTestDataSamples.openSampleWorkbook("55906-MultiSheetRefs.xls"), XSSFTestDataSamples.openSampleWorkbook("55906-MultiSheetRefs.xlsx")