2013-02-28 95 views
0

我已經使用POI讀取/寫入excel表單。當使用POI寫入新表單時,它工作正常。但是,當我嘗試使用POI寫入現有的Excel工作簿時,它does not working.how我可以糾正這個問題?使用POI寫入現有的Excel文件

   workBook = getWorkbookSheet(workBookName); 
    sheet1 = workBook.getSheetAt(1); 
    sheet2 = workBook.getSheetAt(2); 

    while(sheetStart<sheet1.getLastRowNum() + 1) 
    { 
     HSSFRow rowSheet1 = sheet1.getRow(sheetStart); 
     HSSFCell cellSheet1 = rowSheet1.getCell(4); 
     if(cellSheet1.getStringCellValue().trim().equals(valY)) 
     {           cellSheet1.setCellValue("N"); 
     } 
     else 
      //do nothing 
      sheetStart++; 
    } 
    fileOutSheet1 = new FileOutputStream(sheet1.getSheetName()); 
    workBook.write(fileOutSheet1); 
    fileOutSheet1.flush(); 
    fileOutSheet1.close(); 
+1

請分享您的代碼 – Biswajit 2013-02-28 06:27:09

+0

「不工作」沒有幫助的。你應該告訴我們究竟會發生什麼*。 – 2013-02-28 06:30:33

+0

我想你需要看看[這個答案](http://stackoverflow.com/a/14951430/2024761)我的。很有可能,情況就是這樣。 – SudoRahul 2013-02-28 06:33:44

回答

0

fileOutSheet1 = new FileOutputStream(sheet1.getSheetName());似乎不正確。你應該給工作簿的路徑而不是sheet1.getSheetName。因爲即使在單個單元格內容更改後,您仍在編寫整個工作簿。

例如,它應該像

FileOutputStream fileOut = new FileOutputStream("C:\\MyWorkbook.xlsx"); 
    wb.write(fileOut); 
    fileOut.close(); 

查看詳細訪問here