Fix bug #49219 - ExternalNameRecord can have a DDE Link entry without an operation

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1082958 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2011-03-18 15:51:39 +00:00
parent dd1af3acd9
commit aff049234a
4 changed files with 17 additions and 8 deletions

View File

@ -34,6 +34,7 @@
<changes>
<release version="3.8-beta2" date="2011-??-??">
<action dev="poi-developers" type="fix">49219 - ExternalNameRecord support for DDE Link entries without an operation</action>
<action dev="poi-developers" type="fix">50846 - More XSSFColor theme improvements, this time for Cell Borders</action>
<action dev="poi-developers" type="fix">50939 - ChartEndObjectRecord is supposed to have 6 bytes at the end, but handle it not</action>
<action dev="poi-developers" type="add">HMEF - New component which supports TNEF (Transport Neutral Encoding Format), aka winmail.dat</action>

View File

@ -176,6 +176,7 @@ public final class ExternalNameRecord extends StandardRecord {
// another switch: the fWantAdvise bit specifies whether the body describes
// an external defined name or a DDE data item
if(isAutomaticLink()){
if(in.available() > 0) {
//body specifies DDE data item
int nColumns = in.readUByte() + 1;
int nRows = in.readShort() + 1;
@ -184,6 +185,7 @@ public final class ExternalNameRecord extends StandardRecord {
_ddeValues = ConstantValueParser.parse(in, totalCount);
_nColumns = nColumns;
_nRows = nRows;
}
} else {
//body specifies an external defined name
int formulaLen = in.readUShort();

View File

@ -2036,4 +2036,10 @@ if(1==2) {
HSSFWorkbook wb = openSample("50939.xls");
assertEquals(2, wb.getNumberOfSheets());
}
public void test49219() throws Exception {
HSSFWorkbook wb = openSample("49219.xls");
assertEquals(1, wb.getNumberOfSheets());
assertEquals("DGATE", wb.getSheetAt(0).getRow(1).getCell(0).getStringCellValue());
}
}

Binary file not shown.