You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2014/07/19 21:10:47 UTC
svn commit: r1611946 - in /poi/trunk/src:
java/org/apache/poi/hssf/eventusermodel/EventWorkbookBuilder.java
java/org/apache/poi/ss/formula/ptg/ExternSheetNameResolver.java
testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java
Author: nick
Date: Sat Jul 19 19:10:47 2014
New Revision: 1611946
URL: http://svn.apache.org/r1611946
Log:
The Event User Model fake-workbook for formula evaluations needs to know about the sheet names
Modified:
poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/EventWorkbookBuilder.java
poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ExternSheetNameResolver.java
poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java
Modified: poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/EventWorkbookBuilder.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/EventWorkbookBuilder.java?rev=1611946&r1=1611945&r2=1611946&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/EventWorkbookBuilder.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/EventWorkbookBuilder.java Sat Jul 19 19:10:47 2014
@@ -138,7 +138,14 @@ public class EventWorkbookBuilder {
}
public HSSFWorkbook getStubHSSFWorkbook() {
- return HSSFWorkbook.create(getStubWorkbook());
+ // Create a base workbook
+ HSSFWorkbook wb = HSSFWorkbook.create(getStubWorkbook());
+ // Stub the sheets, so sheet name lookups work
+ for (BoundSheetRecord bsr : boundSheetRecords) {
+ wb.createSheet(bsr.getSheetname());
+ }
+ // Ready for Formula use!
+ return wb;
}
public InternalWorkbook getStubWorkbook() {
return createStubWorkbook(
Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ExternSheetNameResolver.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ExternSheetNameResolver.java?rev=1611946&r1=1611945&r2=1611946&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ExternSheetNameResolver.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/ExternSheetNameResolver.java Sat Jul 19 19:10:47 2014
@@ -17,8 +17,8 @@
package org.apache.poi.ss.formula.ptg;
-import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.EvaluationWorkbook.ExternalSheet;
+import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.SheetNameFormatter;
/**
@@ -36,8 +36,13 @@ final class ExternSheetNameResolver {
if (externalSheet != null) {
String wbName = externalSheet.getWorkbookName();
String sheetName = externalSheet.getSheetName();
- sb = new StringBuffer(wbName.length() + sheetName.length() + cellRefText.length() + 4);
- SheetNameFormatter.appendFormat(sb, wbName, sheetName);
+ if (wbName != null) {
+ sb = new StringBuffer(wbName.length() + sheetName.length() + cellRefText.length() + 4);
+ SheetNameFormatter.appendFormat(sb, wbName, sheetName);
+ } else {
+ sb = new StringBuffer(sheetName.length() + cellRefText.length() + 4);
+ SheetNameFormatter.appendFormat(sb, sheetName);
+ }
} else {
String sheetName = book.getSheetNameByExternSheet(field_1_index_extern_sheet);
sb = new StringBuffer(sheetName.length() + cellRefText.length() + 4);
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java?rev=1611946&r1=1611945&r2=1611946&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/eventusermodel/TestEventWorkbookBuilder.java Sat Jul 19 19:10:47 2014
@@ -97,8 +97,11 @@ public final class TestEventWorkbookBuil
// Check these stubs have the right stuff on them
assertEquals("Sheet1", stubWB.getSheetName(0));
- assertEquals("S2", stubWB.getSheetName(1));
- assertEquals("Sh3", stubWB.getSheetName(2));
+ assertEquals("Sheet1", stubHSSF.getSheetName(0));
+ assertEquals("S2", stubWB.getSheetName(1));
+ assertEquals("S2", stubHSSF.getSheetName(1));
+ assertEquals("Sh3", stubWB.getSheetName(2));
+ assertEquals("Sh3", stubHSSF.getSheetName(2));
// Check we can get the formula without breaking
for(int i=0; i<fRecs.length; i++) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org