Index: src/java/org/apache/poi/ss/formula/FormulaParser.java =================================================================== --- src/java/org/apache/poi/ss/formula/FormulaParser.java (revision 1763803) +++ src/java/org/apache/poi/ss/formula/FormulaParser.java (working copy) @@ -1119,6 +1119,17 @@ return sb.toString(); } } + + private String getBookName() { + StringBuilder sb = new StringBuilder(); + GetChar(); + while (look != ']') { + sb.append(look); + GetChar(); + } + GetChar(); + return sb.toString(); + } /** * Note - caller should reset {@link #_pointer} upon null result @@ -1127,22 +1138,18 @@ private SheetIdentifier parseSheetName() { String bookName; if (look == '[') { - StringBuilder sb = new StringBuilder(); - GetChar(); - while (look != ']') { - sb.append(look); - GetChar(); - } - GetChar(); - bookName = sb.toString(); + bookName = getBookName(); } else { bookName = null; } if (look == '\'') { + Match('\''); + + if (look == '[') + bookName = getBookName(); + StringBuffer sb = new StringBuffer(); - - Match('\''); boolean done = look == '\''; while(!done) { sb.append(look);