2016-11-16 38 views
0

我想寫一個字符串到現有的Excel文件細胞,這裏是我的方法:無法將數據寫入到Excel文件細胞

public void setSuccessMessageInExcellFile(File uploadFile, HttpServletResponse response) { 


     try { 
      FileInputStream fileInputStream = new FileInputStream(uploadFile); 

      HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream); 
      HSSFSheet excelSheet = workbook.getSheetAt(0); 
      HSSFCell cell = excelSheet.getRow(0).getCell(0); 
      cell.setCellValue("Imported"); 

      fileInputStream.close(); 
      FileOutputStream out = new FileOutputStream(uploadFile); 
      workbook.write(out); 
      out.close(); 
     } catch(Exception ex) { 
      ex.getCause().printStackTrace(); 
     } 

    } 

沒有錯誤,但「進口」文字不可用在我的Excel文件中。

+1

哪裏是你的「 uploadFile「的位置?它由服務器管理嗎?你能稍微解釋一下你的用例嗎? 「HttpServletResponse'的存在讓我懷疑你是否真的上傳文件並試圖改變它...... – dubes

回答

0

確保您的文件存在,可寫且具有正確的Excel版本。之後,你應該改變你的代碼一樣,因爲你得到一個NullPointerException否則:

public void setSuccessMessageInExcellFile(File uploadFile, HttpServletResponse response) { 


    try { 
     FileInputStream fileInputStream = new FileInputStream(uploadFile); 

     HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream); 
     HSSFSheet excelSheet = workbook.getSheetAt(0); 
     HSSFCell cell = excelSheet.createRow(0).createCell(0); 
     cell.setCellValue("Imported"); 

     fileInputStream.close(); 
     FileOutputStream out = new FileOutputStream(uploadFile); 
     workbook.write(out); 
     out.close(); 
    } catch(Exception ex) { 
     ex.getCause().printStackTrace(); 
    } 
} 

,更好的將被把closables在嘗試像這樣的說法:

​​
+0

我確定我的文件存在但是我怎樣才能授予可寫 –

+0

的權限請確保該文件未在Excel中打開當你試圖寫在它上面。 – Endery