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
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;
}
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);
+ }
}