You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by dm...@apache.org on 2003/05/09 14:39:08 UTC
cvs commit: jakarta-poi/src/testcases/org/apache/poi/hssf/model SheetTest.java
dmui 2003/05/09 05:39:08
Modified: src/java/org/apache/poi/hssf/model Sheet.java
src/java/org/apache/poi/hssf/record/aggregates
RowRecordsAggregate.java
src/testcases/org/apache/poi/hssf/model SheetTest.java
Log:
Made sure all row records for the sheet are aggregated since rows are skipped
if a formula yields a String.
PR: 15062
Revision Changes Path
1.31 +5 -6 jakarta-poi/src/java/org/apache/poi/hssf/model/Sheet.java
Index: Sheet.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/model/Sheet.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- Sheet.java 30 Apr 2003 04:39:16 -0000 1.30
+++ Sheet.java 9 May 2003 12:39:08 -0000 1.31
@@ -234,17 +234,16 @@
}
else if ( rec.getSid() == RowRecord.sid )
{
+ RowRecord row = (RowRecord)rec;
+ if (!isfirstrow) rec = null; //only add the aggregate once
+
if ( isfirstrow )
{
retval.rows = new RowRecordsAggregate();
- rec = retval.rows;
- retval.rows.construct( k, recs );
+ rec = retval.rows;
isfirstrow = false;
}
- else
- {
- rec = null;
- }
+ retval.rows.insertRow(row);
}
else if ( rec.getSid() == PrintGridlinesRecord.sid )
{
1.6 +4 -1 jakarta-poi/src/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java
Index: RowRecordsAggregate.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- RowRecordsAggregate.java 30 Apr 2003 04:39:20 -0000 1.5
+++ RowRecordsAggregate.java 9 May 2003 12:39:08 -0000 1.6
@@ -135,6 +135,9 @@
return lastrow;
}
+ /*
+ * No need to go through all the records as we're just collecting RowRecords
+
public int construct(int offset, List records)
{
int k = 0;
@@ -154,7 +157,7 @@
}
return k;
}
-
+ */
/**
* called by the class that is responsible for writing this sucker.
* Subclasses should implement this so that their data is passed back in a
1.3 +35 -0 jakarta-poi/src/testcases/org/apache/poi/hssf/model/SheetTest.java
Index: SheetTest.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/model/SheetTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SheetTest.java 11 Apr 2003 02:58:23 -0000 1.2
+++ SheetTest.java 9 May 2003 12:39:08 -0000 1.3
@@ -7,6 +7,8 @@
import junit.framework.TestCase;
import org.apache.poi.hssf.record.ColumnInfoRecord;
+import org.apache.poi.hssf.record.RowRecord;
+import org.apache.poi.hssf.record.StringRecord;
/**
* @author Tony Poppleton
@@ -118,6 +120,39 @@
catch(Exception e){e.printStackTrace();fail(e.getMessage());}
}
+
+ /**
+ * Makes sure all rows registered for this sheet are aggregated, they were being skipped
+ *
+ */
+ public void testRowAggregation() {
+ List records = new ArrayList();
+ RowRecord row = new RowRecord();
+ row.setRowNumber(0);
+ records.add(row);
+
+ row = new RowRecord();
+ row.setRowNumber(1);
+ records.add(row);
+
+ records.add(new StringRecord());
+
+ row = new RowRecord();
+ row.setRowNumber(2);
+ records.add(row);
+
+
+ Sheet sheet = Sheet.createSheet(records, 0);
+ assertNotNull("Row [2] was skipped", sheet.getRow(2));
+
+ }
+
+
+ public static void main(String [] args) {
+ System.out
+ .println("Testing : "+SheetTest.class.getName());
+ junit.textui.TestRunner.run(SheetTest.class);
+ }
}