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