Fixed formula parser to handle names with backslashes
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@744749 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7c870ecd41
commit
5d5f76be67
@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
<!-- Don't forget to update status.xml too! -->
|
<!-- Don't forget to update status.xml too! -->
|
||||||
<release version="3.5-beta6" date="2008-??-??">
|
<release version="3.5-beta6" date="2008-??-??">
|
||||||
|
<action dev="POI-DEVELOPERS" type="fix">Fixed formula parser to handle names with backslashes</action>
|
||||||
<action dev="POI-DEVELOPERS" type="add">46660 - added Workbook getHidden() and setHidden(boolean)</action>
|
<action dev="POI-DEVELOPERS" type="add">46660 - added Workbook getHidden() and setHidden(boolean)</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">46693 - Fixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX</action>
|
<action dev="POI-DEVELOPERS" type="fix">46693 - Fixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">46627 - Fixed offset of added images if Pictures stream contains pictures with zero length</action>
|
<action dev="POI-DEVELOPERS" type="fix">46627 - Fixed offset of added images if Pictures stream contains pictures with zero length</action>
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
<!-- Don't forget to update changes.xml too! -->
|
<!-- Don't forget to update changes.xml too! -->
|
||||||
<changes>
|
<changes>
|
||||||
<release version="3.5-beta6" date="2008-??-??">
|
<release version="3.5-beta6" date="2008-??-??">
|
||||||
|
<action dev="POI-DEVELOPERS" type="fix">Fixed formula parser to handle names with backslashes</action>
|
||||||
<action dev="POI-DEVELOPERS" type="add">46660 - added Workbook getHidden() and setHidden(boolean)</action>
|
<action dev="POI-DEVELOPERS" type="add">46660 - added Workbook getHidden() and setHidden(boolean)</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">46693 - Fixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX</action>
|
<action dev="POI-DEVELOPERS" type="fix">46693 - Fixed bugs serialization bugs in records: CHARTFORMAT, SHTPROPS, SXVD and SXVDEX</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">46627 - Fixed offset of added images if Pictures stream contains pictures with zero length</action>
|
<action dev="POI-DEVELOPERS" type="fix">46627 - Fixed offset of added images if Pictures stream contains pictures with zero length</action>
|
||||||
|
@ -298,7 +298,7 @@ public final class FormulaParser {
|
|||||||
} else {
|
} else {
|
||||||
// allow for any sequence of dots and identifier chars
|
// allow for any sequence of dots and identifier chars
|
||||||
// special case of two consecutive dots is best treated in the calling code
|
// special case of two consecutive dots is best treated in the calling code
|
||||||
while (IsAlNum(look) || look == '.' || look == '[' || look == ']') {
|
while (IsAlNum(look) || look == '.' || look == '[' || look == ']' || look == '\\') {
|
||||||
sb.append(look);
|
sb.append(look);
|
||||||
GetChar();
|
GetChar();
|
||||||
}
|
}
|
||||||
|
@ -996,4 +996,25 @@ public final class TestFormulaParser extends TestCase {
|
|||||||
MemFuncPtg mf = (MemFuncPtg)ptgs[0];
|
MemFuncPtg mf = (MemFuncPtg)ptgs[0];
|
||||||
assertEquals(15, mf.getLenRefSubexpression());
|
assertEquals(15, mf.getLenRefSubexpression());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Named ranges with backslashes, e.g. 'POI\\2009' */
|
||||||
|
public void testBackSlashInNames() {
|
||||||
|
HSSFWorkbook wb = new HSSFWorkbook();
|
||||||
|
|
||||||
|
HSSFName name = wb.createName();
|
||||||
|
name.setNameName("POI\\2009");
|
||||||
|
name.setRefersToFormula("Sheet1!$A$1");
|
||||||
|
|
||||||
|
HSSFSheet sheet = wb.createSheet();
|
||||||
|
HSSFRow row = sheet.createRow(0);
|
||||||
|
|
||||||
|
HSSFCell cell_C1 = row.createCell(2);
|
||||||
|
cell_C1.setCellFormula("POI\\2009");
|
||||||
|
assertEquals("POI\\2009", cell_C1.getCellFormula());
|
||||||
|
|
||||||
|
HSSFCell cell_D1 = row.createCell(2);
|
||||||
|
cell_D1.setCellFormula("NOT(POI\\2009=\"3.5-final\")");
|
||||||
|
assertEquals("NOT(POI\\2009=\"3.5-final\")", cell_D1.getCellFormula());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user