Can you try writing a simple test case which opens the workbook, changes
some records and writes it back adding some hard coded strings (without
all of the  rest).  

Thanks,

-Andy

On Tue, 2002-04-09 at 07:59, [EMAIL PROTECTED] wrote:
> Hi,
> 
> I'm new to POI and would like to use it for generating XLS-Files. Now
> something doesn't work  as I expect. 
> 
> What should happen:
> 1) I would like to read an xls-file as template (about 20 rows).
> 2) Then some cells in the workbook are changed.
> 3) Then some rows should be added to the workbook.
> 4) The workbook should be written as a new xls file.
> 
> Everything works fine, the changes under 2) are done, but the rows under 3)
> are not added. I don't get an exception and using a debugger I've seen that
> the rows are created, as well as the cells are created and filled with data.
> They are just missing in the written file. 
> 
> If I create a new workbook instead of reading one, adding rows with similar
> code works without any problem.
> 
> For sure I'm doing something wrong, but I can't find where. Does somebody
> have a hint for me?
> 
> 
> The code looks like:
> 
> //snippet of "caller"-class
> (...)
> //produce somehow an arraylist of arrayobjects with strings to write in the
> cells
> ArrayList testdata = (...)
> FahrplanXLS fp = new FahrplanXLS("test.xls");
> fp.setFahrplanData( testdata );
> fp.write();
> (...)
> 
> 
> //parts of class with logic for changing cells and adding records to the
> workbook
> public class FahrplanXLS {
>   private HSSFWorkbook  wb = null; // declare a workbook object reference
>   
>   /** constructor
>    *
>    */      
>   public FahrplanXLS(String inFilename) {
> 
>     try
>     {
> 
>       Filesystem fs = new Filesystem( new FileInputStream(inFilename) );
>       // create the workbook
>       wb = new HSSFWorkbook( fs );
>     }
>     catch(FileNotFoundException e){
>     }
>     catch(IOException e){
>     }
> 
>   }
> 
> 
>   /**
>    * writes fahrplan data in the template and adds new rows with additional
>    * data
>    * @param fahrplandata
>    */
>   public void setFahrplanData( ArrayList fahrplandata ){
>     HSSFCell cell = getCellWithTag( XLS_TAG_FAHRPLAN_VALUES );
>     HSSFSheet sheet = wb.getSheetAt( actualSheetNum );
>     
>     //change some cell values of the template
>     (...)
> 
>     //get last rownum with data
>     actualRowNum = sheet.getLastRowNum()+1;
>     //add more records until arraylist is empty
>     while( !fahrplandata.isEmpty() ){
>       addRecord( sheet, actualCellNum, actualRowNum, (String[])
> fahrplandata.remove(0) );
>       actualRowNum++;
>     }
>   }
> 
> 
>   /**
>    * adds a line with Fahrplan data starting at the first row after header
> information
>    * @param cellNum  number of cell from the left for first value of the
> record
>    * @param rowNum   number of row to create
>    * @param record   record of Strings with data
>    */
>   public void addRecord( HSSFSheet sheet, short cellNum, int rowNum,
> String[] record ){
> 
>     // create a row
>     HSSFRow row = sheet.createRow( (short)rowNum );
>     HSSFCell cell = null;
> 
>     // create a cell for each array member and write the data
>     for( short i = 0; i < record.length; i++ ){
>       cell = row.createCell( (short)(cellNum + i), HSSFCell.CELL_TYPE_STRING
> );
>       cell.setCellValue( record[i] );
>     }
>   }
> 
>   /**
>    * writes xls file
>    * @return true if file was written else false
>    */
>   public boolean write(){
>     // create a new file
>     try{
>       FileOutputStream out    = new FileOutputStream(filename);
> 
>       // write the workbook to the output stream
>       wb.write(out);
>       out.close();
>       return true;
>     }
>     catch(Exception e){
>       //logit
>       return false;
>     }
>   }
> 
> }
> 
> 
> Thanks in advance and kind regards,
> 
> Peter
> 
> ---------------
> Peter H�berli
> BKW-FMB
> Information Technology - Industrial Applications
> phone ++41 (0)31 330 64 37 / 330 57 21
> fax ++41 (0)31 330 52 04
> mailto:[EMAIL PROTECTED]
> 
> 
-- 
http://www.superlinksoftware.com
http://jakarta.apache.org/poi - port of Excel/Word/OLE 2 Compound
Document 
                            format to java
http://developer.java.sun.com/developer/bugParade/bugs/4487555.html 
                        - fix java generics!
The avalanche has already started. It is too late for the pebbles to
vote.
-Ambassador Kosh

Reply via email to