I am trying to appends new rows to an existing excel sheet. Although if I
open the file in a text editor I can see that the new rows have been
appended. Of course, I also see a lot of junk values which is fine. But the
moment I open the file using excel I see only the records added right after
the excel was created for the first time.

Here is my code,

        public static void writeExcel(String lOutputFileName, List 
aOutputLines)  {

                File lFile = new File(lOutputFileName);
                
                InputStream lFin = null;
                HSSFWorkbook lWorkBook = null;
                HSSFSheet lWorkSheet = null;
                FileOutputStream lFout = null;
                POIFSFileSystem lPOIfs = null;
                
                if (lFile.exists()) {
                        
                        try {
                                lFout = new FileOutputStream(lOutputFileName, 
true);
                                
                                lFin = new FileInputStream(lOutputFileName);
                                lPOIfs = new POIFSFileSystem(lFin);
                                
                                lWorkBook = new HSSFWorkbook(lPOIfs);
                                lWorkSheet = lWorkBook.getSheet("DataSheet1");
                                
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
                else {
                        // Create new file
                        try {
                                lFout = new FileOutputStream(lOutputFileName);
                        } catch (FileNotFoundException e) {
                                e.printStackTrace();
                        }
                        lWorkBook = new HSSFWorkbook();
                        lWorkSheet = lWorkBook.createSheet("DataSheet1");
                }
                
                try {
                        for (Iterator iter = aOutputLines.iterator(); 
iter.hasNext();) {

                                Object lValue = iter.next();
                                
                                if (lValue == null) {
                                        System.out.println("=>NULL VALUE => " + 
lValue);
                                }
                                else {
                                        StringBuffer lSqlLine = (StringBuffer) 
lValue;
                                        
                                        HSSFRow lRow = 
lWorkSheet.createRow(lWorkSheet.getLastRowNum()+1);
                                        
                                        
System.out.println("lWorkSheet.getLastRowNum() " +
lWorkSheet.getLastRowNum());
                                        
                                        HSSFCell lCell = 
lRow.createCell((short)0);
                                        
                                        lCell.setCellValue(lSqlLine.toString());
                                }
                        }
                        lWorkBook.write(lFout);
                        lFout.flush();
                }
                catch (IOException e) {
                        e.printStackTrace();
                }
                finally {
                        try {
                                lFout.close();
                        }
                        catch (IOException e) {
                                e.printStackTrace();
                        }                       
                }
        }

-- 
View this message in context: 
http://www.nabble.com/Problem-appending-rows-to-existing-excel-sheet-tf3389342.html#a9434129
Sent from the POI - User mailing list archive at Nabble.com.


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

Reply via email to