2016-11-16 86 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