]> source.dussan.org Git - poi.git/commitdiff
bug 31044: Corrected parsing of references which contain double sheet names ie 'Sheet...
authorJason Height <jheight@apache.org>
Mon, 28 Aug 2006 12:18:10 +0000 (12:18 +0000)
committerJason Height <jheight@apache.org>
Mon, 28 Aug 2006 12:18:10 +0000 (12:18 +0000)
Although i have hacked it a bit such that it gets translated to 'Sheet 1'!F1:F10

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@437684 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/model/FormulaParser.java

index 0be6488e6853840bd4a71b1a1123c53eb6edda73..816b044512c39748e054097c8ac15e1c29e438a6 100644 (file)
@@ -290,8 +290,19 @@ public class FormulaParser {
             if (look == ':') {
                 Match(':');
                 String second=GetName();
-                
-                tokens.add(new Area3DPtg(first+":"+second,externIdx));
+                if (look == '!') {
+                       //The sheet name was included in both of the areas. Only really
+                       //need it once
+                       Match('!');
+                       String third=GetName();
+                       
+                       if (!sheetName.equals(second))
+                               throw new RuntimeException("Unhandled double sheet reference.");
+                       
+                       tokens.add(new Area3DPtg(first+":"+third,externIdx));
+                } else {                                  
+                  tokens.add(new Area3DPtg(first+":"+second,externIdx));
+                }
             } else {
                 tokens.add(new Ref3DPtg(first,externIdx));
             }