Return-Path: X-Original-To: apmail-poi-commits-archive@minotaur.apache.org Delivered-To: apmail-poi-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9078811A89 for ; Sun, 20 Jul 2014 18:53:53 +0000 (UTC) Received: (qmail 86459 invoked by uid 500); 20 Jul 2014 18:53:53 -0000 Delivered-To: apmail-poi-commits-archive@poi.apache.org Received: (qmail 86417 invoked by uid 500); 20 Jul 2014 18:53:53 -0000 Mailing-List: contact commits-help@poi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@poi.apache.org Delivered-To: mailing list commits@poi.apache.org Received: (qmail 86408 invoked by uid 99); 20 Jul 2014 18:53:53 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 20 Jul 2014 18:53:53 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 20 Jul 2014 18:53:53 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 62D27238890D; Sun, 20 Jul 2014 18:53:28 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1612150 - in /poi/trunk/src: java/org/apache/poi/ss/formula/ptg/ ooxml/testcases/org/apache/poi/xssf/usermodel/ Date: Sun, 20 Jul 2014 18:53:28 -0000 To: commits@poi.apache.org From: nick@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140720185328.62D27238890D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: nick Date: Sun Jul 20 18:53:27 2014 New Revision: 1612150 URL: http://svn.apache.org/r1612150 Log: XSSF Pxgs must escape sheet names where required when generating the formula string Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Deleted3DPxg.java poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaParser.java Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java?rev=1612150&r1=1612149&r2=1612150&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java Sun Jul 20 18:53:27 2014 @@ -17,6 +17,7 @@ package org.apache.poi.ss.formula.ptg; +import org.apache.poi.ss.formula.SheetNameFormatter; import org.apache.poi.ss.util.AreaReference; import org.apache.poi.util.LittleEndianOutput; @@ -87,7 +88,7 @@ public final class Area3DPxg extends Are sb.append(externalWorkbookNumber); sb.append(']'); } - sb.append(sheetName); + SheetNameFormatter.appendFormat(sb, sheetName); sb.append('!'); sb.append(formatReferenceAsString()); return sb.toString(); Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Deleted3DPxg.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Deleted3DPxg.java?rev=1612150&r1=1612149&r2=1612150&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Deleted3DPxg.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Deleted3DPxg.java Sun Jul 20 18:53:27 2014 @@ -17,6 +17,7 @@ package org.apache.poi.ss.formula.ptg; +import org.apache.poi.ss.formula.SheetNameFormatter; import org.apache.poi.ss.usermodel.ErrorConstants; import org.apache.poi.util.LittleEndianOutput; @@ -71,7 +72,7 @@ public final class Deleted3DPxg extends sb.append(']'); } if (sheetName != null) { - sb.append(sheetName); + SheetNameFormatter.appendFormat(sb, sheetName); } sb.append('!'); sb.append(ErrorConstants.getText(ErrorConstants.ERROR_REF)); Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java?rev=1612150&r1=1612149&r2=1612150&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/NameXPxg.java Sun Jul 20 18:53:27 2014 @@ -17,6 +17,7 @@ package org.apache.poi.ss.formula.ptg; +import org.apache.poi.ss.formula.SheetNameFormatter; import org.apache.poi.util.LittleEndianOutput; /** @@ -79,7 +80,7 @@ public final class NameXPxg extends Oper sb.append(']'); } if (sheetName != null) { - sb.append(sheetName); + SheetNameFormatter.appendFormat(sb, sheetName); } sb.append('!'); sb.append(nameName); Modified: poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java?rev=1612150&r1=1612149&r2=1612150&view=diff ============================================================================== --- poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java (original) +++ poi/trunk/src/java/org/apache/poi/ss/formula/ptg/Ref3DPxg.java Sun Jul 20 18:53:27 2014 @@ -17,6 +17,7 @@ package org.apache.poi.ss.formula.ptg; +import org.apache.poi.ss.formula.SheetNameFormatter; import org.apache.poi.ss.util.CellReference; import org.apache.poi.util.LittleEndianOutput; @@ -86,7 +87,9 @@ public final class Ref3DPxg extends RefP sb.append(externalWorkbookNumber); sb.append(']'); } - sb.append(sheetName); + if (sheetName != null) { + SheetNameFormatter.appendFormat(sb, sheetName); + } sb.append('!'); sb.append(formatReferenceAsString()); return sb.toString(); Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaParser.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaParser.java?rev=1612150&r1=1612149&r2=1612150&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaParser.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaParser.java Sun Jul 20 18:53:27 2014 @@ -130,6 +130,15 @@ public final class TestXSSFFormulaParser assertEquals("A1", ((Ref3DPxg)ptgs[0]).format2DRefAsString()); assertEquals("Uses!A1", ((Ref3DPxg)ptgs[0]).toFormulaString()); + // Reference to a single cell in a different sheet, which needs quoting + ptgs = parse(fpb, "'Testing 47100'!A1"); + assertEquals(1, ptgs.length); + assertEquals(Ref3DPxg.class, ptgs[0].getClass()); + assertEquals(-1, ((Ref3DPxg)ptgs[0]).getExternalWorkbookNumber()); + assertEquals("Testing 47100", ((Ref3DPxg)ptgs[0]).getSheetName()); + assertEquals("A1", ((Ref3DPxg)ptgs[0]).format2DRefAsString()); + assertEquals("'Testing 47100'!A1", ((Ref3DPxg)ptgs[0]).toFormulaString()); + // Reference to a sheet scoped named range from another sheet ptgs = parse(fpb, "Defines!NR_To_A1"); assertEquals(1, ptgs.length); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org For additional commands, e-mail: commits-help@poi.apache.org