Browse Source

fixed bug 53588

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1382339 13f79535-47bb-0310-9956-ffa450edef68
tags/3.10-beta1
Evgeniy Berlog 11 years ago
parent
commit
8a8bf7d393

+ 6
- 9
src/java/org/apache/poi/hssf/eventusermodel/MissingRecordAwareHSSFListener.java View File

@@ -20,15 +20,7 @@ package org.apache.poi.hssf.eventusermodel;
import org.apache.poi.hssf.eventusermodel.dummyrecord.LastCellOfRowDummyRecord;
import org.apache.poi.hssf.eventusermodel.dummyrecord.MissingCellDummyRecord;
import org.apache.poi.hssf.eventusermodel.dummyrecord.MissingRowDummyRecord;
import org.apache.poi.hssf.record.BOFRecord;
import org.apache.poi.hssf.record.CellValueRecordInterface;
import org.apache.poi.hssf.record.MulBlankRecord;
import org.apache.poi.hssf.record.MulRKRecord;
import org.apache.poi.hssf.record.NoteRecord;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.record.RecordFactory;
import org.apache.poi.hssf.record.RowRecord;
import org.apache.poi.hssf.record.SharedFormulaRecord;
import org.apache.poi.hssf.record.*;

/**
* <p>A HSSFListener which tracks rows and columns, and will
@@ -72,6 +64,11 @@ public final class MissingRecordAwareHSSFListener implements HSSFListener {
thisRow = valueRec.getRow();
thisColumn = valueRec.getColumn();
} else {
if (record instanceof StringRecord){
//it contains only cashed result of the previous FormulaRecord evaluation
childListener.processRecord(record);
return;
}
thisRow = -1;
thisColumn = -1;


+ 18
- 0
src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java View File

@@ -461,4 +461,22 @@ public final class TestMissingRecordAwareHSSFListener extends TestCase {
}
assertEquals(2, eorCount);
}

public void testStringRecordHandling(){
readRecords("53588.xls");
Record[] rr = r;
int missingCount=0;
int lastCount=0;
for (int i = 0; i < rr.length; i++) {
Record record = rr[i];
if (record instanceof MissingCellDummyRecord) {
missingCount++;
}
if (record instanceof LastCellOfRowDummyRecord) {
lastCount++;
}
}
assertEquals(1, missingCount);
assertEquals(1, lastCount);
}
}

BIN
test-data/spreadsheet/53588.xls View File


Loading…
Cancel
Save