You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@poi.apache.org by Terrence Enger <te...@iSeries-guru.com> on 2006/12/02 21:11:02 UTC

IndexOutOfBoundsException

Greetings, all.

I am very new to HSSF and almost as new to Java, so if there
is something basic that I could have done to get into
trouble, that is the first thing I need to know.

The program ...

> /*
>  * Add a row and delete it
>  *
>  */
> 
> /* imports, following the example of ReadWriteWorkbook.java, as distributed
>  * with the HSSF package
>  */
> 
> import org.apache.poi.poifs.filesystem.POIFSFileSystem;
> import org.apache.poi.hssf.usermodel.HSSFWorkbook;
> import org.apache.poi.hssf.usermodel.HSSFSheet;
> import org.apache.poi.hssf.usermodel.HSSFRow;
> 
> import java.io.FileInputStream;
> import java.io.FileOutputStream;
> import java.io.IOException;
> 
> 
> 
> public class AddDltRow {
> 
> 
>     public static void main(String[] args) {
> 
> 	// Create book, sheet, and row.
> 	HSSFWorkbook wkb = new HSSFWorkbook();
> 	HSSFSheet    wks = wkb.createSheet();
> 	HSSFRow      row = wks.createRow( 0 );
> 
> 	// Delete the row
> 	wks.removeRow ( row );
> 
>     } // main()
> 
> } // class AddDltRow

fails with ...

> Exception in thread "main" java.lang.IndexOutOfBoundsException: Row
number must
> be between 0 and 65535, was <-1>
>         at org.apache.poi.hssf.usermodel.HSSFRow.setRowNum(HSSFRow.java:206)
>         at
org.apache.poi.hssf.usermodel.HSSFSheet.getRow(HSSFSheet.java:309)
>         at
org.apache.poi.hssf.usermodel.HSSFSheet.findLastRow(HSSFSheet.java:243)
>         at
org.apache.poi.hssf.usermodel.HSSFSheet.removeRow(HSSFSheet.java:217)
>         at AddDltRow.main(AddDltRow.java:34)

I think this happens only when I remove row 0 and it is the
only row in the sheet: I can delete row 0 if there is
another row in the sheet, and I can delete the last row of
the sheet if it is not row 0.

My machine is running Windows XP and Java 1.5.0_08.  The
problem happens with both poi-3.0-alpha2-20060616.jar and
poi-2.5.1-final-20040804.jar, although I *think* I remember
seeing differences between the two versions as I was hacking
around trying to create a small program to demonstrate the
failure.

Thank you, all, for your attention.
Terry.



---------------------------------------------------------------------
To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/


Re: IndexOutOfBoundsException

Posted by Terrence Enger <te...@iSeries-guru.com>.
At 01:06 2006-12-03 -0800, Anthony Andrews wrote:
> Should you not have typed
> 
> wks.removeRow(0);
> 
> The parameter you are passing is a reference to the row you
> have just created and I think that the removeRow() method
> requires an int.
> 

I think I have to pass a row.  That is what javadoc tells
me, and the compiler confirms the lack of removeRow(int).

> Terrence Enger <te...@iSeries-guru.com> wrote: Greetings, all.
[snip]
> >  // Create book, sheet, and row.
> >  HSSFWorkbook wkb = new HSSFWorkbook();
> >  HSSFSheet    wks = wkb.createSheet();
> >  HSSFRow      row = wks.createRow( 0 );
> > 
> >  // Delete the row
> >  wks.removeRow ( row );
[snip]



---------------------------------------------------------------------
To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/


Re: IndexOutOfBoundsException

Posted by Anthony Andrews <py...@yahoo.com>.
Should you not have typed

wks.removeRow(0);

The parameter you are passing is a reference to the row you have just created and I think that the removeRow() method requires an int.

Terrence Enger <te...@iSeries-guru.com> wrote: Greetings, all.

I am very new to HSSF and almost as new to Java, so if there
is something basic that I could have done to get into
trouble, that is the first thing I need to know.

The program ...

> /*
>  * Add a row and delete it
>  *
>  */
> 
> /* imports, following the example of ReadWriteWorkbook.java, as distributed
>  * with the HSSF package
>  */
> 
> import org.apache.poi.poifs.filesystem.POIFSFileSystem;
> import org.apache.poi.hssf.usermodel.HSSFWorkbook;
> import org.apache.poi.hssf.usermodel.HSSFSheet;
> import org.apache.poi.hssf.usermodel.HSSFRow;
> 
> import java.io.FileInputStream;
> import java.io.FileOutputStream;
> import java.io.IOException;
> 
> 
> 
> public class AddDltRow {
> 
> 
>     public static void main(String[] args) {
> 
>  // Create book, sheet, and row.
>  HSSFWorkbook wkb = new HSSFWorkbook();
>  HSSFSheet    wks = wkb.createSheet();
>  HSSFRow      row = wks.createRow( 0 );
> 
>  // Delete the row
>  wks.removeRow ( row );
> 
>     } // main()
> 
> } // class AddDltRow

fails with ...

> Exception in thread "main" java.lang.IndexOutOfBoundsException: Row
number must
> be between 0 and 65535, was <-1>
>         at org.apache.poi.hssf.usermodel.HSSFRow.setRowNum(HSSFRow.java:206)
>         at
org.apache.poi.hssf.usermodel.HSSFSheet.getRow(HSSFSheet.java:309)
>         at
org.apache.poi.hssf.usermodel.HSSFSheet.findLastRow(HSSFSheet.java:243)
>         at
org.apache.poi.hssf.usermodel.HSSFSheet.removeRow(HSSFSheet.java:217)
>         at AddDltRow.main(AddDltRow.java:34)

I think this happens only when I remove row 0 and it is the
only row in the sheet: I can delete row 0 if there is
another row in the sheet, and I can delete the last row of
the sheet if it is not row 0.

My machine is running Windows XP and Java 1.5.0_08.  The
problem happens with both poi-3.0-alpha2-20060616.jar and
poi-2.5.1-final-20040804.jar, although I *think* I remember
seeing differences between the two versions as I was hacking
around trying to create a small program to demonstrate the
failure.

Thank you, all, for your attention.
Terry.



---------------------------------------------------------------------
To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/



 
---------------------------------
Everyone is raving about the all-new Yahoo! Mail beta.