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;
sb.append(externalWorkbookNumber);
sb.append(']');
}
- sb.append(sheetName);
+ SheetNameFormatter.appendFormat(sb, sheetName);
sb.append('!');
sb.append(formatReferenceAsString());
return sb.toString();
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;
sb.append(']');
}
if (sheetName != null) {
- sb.append(sheetName);
+ SheetNameFormatter.appendFormat(sb, sheetName);
}
sb.append('!');
sb.append(ErrorConstants.getText(ErrorConstants.ERROR_REF));
package org.apache.poi.ss.formula.ptg;
+import org.apache.poi.ss.formula.SheetNameFormatter;
import org.apache.poi.util.LittleEndianOutput;
/**
sb.append(']');
}
if (sheetName != null) {
- sb.append(sheetName);
+ SheetNameFormatter.appendFormat(sb, sheetName);
}
sb.append('!');
sb.append(nameName);
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;
sb.append(externalWorkbookNumber);
sb.append(']');
}
- sb.append(sheetName);
+ if (sheetName != null) {
+ SheetNameFormatter.appendFormat(sb, sheetName);
+ }
sb.append('!');
sb.append(formatReferenceAsString());
return sb.toString();
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);