You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by Anthony Johnson <an...@transitmonitor.com> on 2003/01/21 15:49:37 UTC
Re: getRow method returning a null value even if populated rows are
present
Hi,
I actually ran into the same problem and fixed it. I have included
the patch. Basically, the program was jumping out of the loop too early
when it is reading
in the data -- for some reason this happens around line 30/31.
I am not sure where to send this patch since this was originally a
user-list subscription, so correct me if I am wrong to send it to this list.
thanks,
Anthony
Index: RowRecordsAggregate.java
===================================================================
RCS file:
/home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/aggregates/RowRecordsAggregate.java,v
retrieving revision 1.4
diff -u -r1.4 RowRecordsAggregate.java
--- RowRecordsAggregate.java 5 Sep 2002 00:26:26 -0000 1.4
+++ RowRecordsAggregate.java 21 Jan 2003 14:47:18 -0000
@@ -55,15 +55,17 @@
package org.apache.poi.hssf.record.aggregates;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.poi.hssf.record.LabelSSTRecord;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.record.RowRecord;
+import org.apache.poi.hssf.record.StringRecord;
import org.apache.poi.hssf.record.UnknownRecord;
-import java.util.Map;
-import java.util.TreeMap;
-import java.util.Iterator;
-import java.util.List;
-
/**
*
* @author andy
@@ -138,18 +140,31 @@
public int construct(int offset, List records)
{
int k = 0;
+ //System.out.println("Constructing rows:" + records.size());
for (k = offset; k < records.size(); k++)
{
Record rec = ( Record ) records.get(k);
- if (!rec.isInValueSection() && !(rec instanceof UnknownRecord))
+ // System.out.println("Record is of type: " +
rec.getClass());
+ if (rec instanceof LabelSSTRecord) {
+ LabelSSTRecord new_name = (LabelSSTRecord) rec;
+ //System.out.println("Row for LabellSST: " +
new_name.getRow());
+ }
+
+ if (rec instanceof StringRecord == false &&
!rec.isInValueSection() && !(rec instanceof UnknownRecord))
{
+ //System.out.println("Record is of type: " +
rec.getClass());
+ // StringRecord r = (StringRecord)rec;
+ // System.out.println("String:" + r.getString());
break;
}
if (rec.getSid() == RowRecord.sid)
{
insertRow(( RowRecord ) rec);
+ RowRecord row = (RowRecord)rec;
+ // System.out.println("Row:" + row.getRowNumber());
+
}
}
return k;
Vikas Pathak wrote:
>Hi,
>
> I worked on this...But i didn't phase any problems.
>Please go through the code let me know any doubts.
>
> File filename = new File(filename1);
> FileInputStream fin = new FileInputStream(filename);
> HSSFWorkbook wb = new HSSFWorkbook(fin);
> HSSFSheet sheet = wb.getSheetAt(sheetno);
> Iterator rows = sheet.rowIterator();
> HSSFRow r = (HSSFRow)rows.next();
> while(r.getRowNum()<4)
> r = (HSSFRow)rows.next();
> rownum = r.getRowNum();
>
> FileOutputStream fileout = new
>FileOutputStream(filename);
> HSSFCell cell;
> HSSFCellStyle cs = wb.createCellStyle();
> HSSFFont f2 = wb.createFont();
> NumberFormat nf = NumberFormat.getNumberInstance();
> nf.setMaximumFractionDigits(2);
> int dot;
>
> r = sheet.createRow((short)(rownum+i));
> cell = r.createCell((short)col);
> cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
> cell.setCellValue(xlval);
> wb.write(fileout);
> fileout.close();
>
>Regards
>kalpana.k
>
>
>Amitabh Verma wrote:
>
>
>
>>Hi there,
>>I m using poi to read and append to mid size excel
>>files(around 2 MB) containing several sheets.
>>The following is the part of the code I use.
>>----------------------------------
>>for ( j =3;j<500; j++)
>> {
>> rowx = sheet.getRow(j);
>> if (rowx ==null) continue;
>> cell = rowx.getCell((short)6);
>> if (cell!=null)
>> {
>> yyy = cell.getStringCellValue();
>> -- some processing --
>> }
>>}
>>---------------------------------------
>>After around 30th row the "rowx = sheet.getRow(j)"
>>returns a null through I can see in the file that the
>>row is populated.
>>Now when create another XL file(which has 2 sheets in
>>all) by copying the same sheet it works fine.
>>Has any one faced this before.
>>
>>Thanx and Regards
>>Amitabh
>>
>>__________________________________________________
>>Do you Yahoo!?
>>Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
>>http://mailplus.yahoo.com
>>
>>--
>>To unsubscribe, e-mail: <ma...@jakarta.apache.org>
>>For additional commands, e-mail: <ma...@jakarta.apache.org>
>>
>>
>
>
>--
>To unsubscribe, e-mail: <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>
>
>
>
>