2016-11-07 69 views
0

我已经写了下面的代码,从谷歌的一些帮助出口Jtable为Excel,但我不能够出口到Excel,我也得到空指针。导出Jtable在Excel中的优秀NetBeans

cell.setCellValue(model.getValueAt(i, j).toString()); 

整个代码是

try { 
     HSSFWorkbook fWorkbook = new HSSFWorkbook(); 
     HSSFSheet fSheet; 
     fSheet = fWorkbook.createSheet("new Sheet"); 
     HSSFFont sheetTitleFont = fWorkbook.createFont(); 
     File file = new File("D:\\MOHIT\\bill report\\report.xls");   

     HSSFCellStyle cellStyle = fWorkbook.createCellStyle(); 
     sheetTitleFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
     //sheetTitleFont.setColor(); 
     TableModel model = report_table.getModel(); 

     TableColumnModel model1 = report_table.getTableHeader().getColumnModel(); 
     HSSFRow fRow1 = fSheet.createRow((short) 0); 
     for (int i = 0; i < model1.getColumnCount(); i++){ 
      HSSFCell cell = fRow1.createCell((short) i); 
      cell.setCellValue(model1.getColumn(i).getHeaderValue().toString());   

} 
     for (int i = 1; i < model.getRowCount(); i++) { 
      HSSFRow fRow = fSheet.createRow((short) i); 
      for (int j = 1; j < model.getColumnCount(); j++) { 
       HSSFCell cell = fRow.createCell((short) j); 
       cell.setCellValue(model.getValueAt(i, j).toString()); 
       cell.setCellStyle(cellStyle); 
      } 
     } 
     FileOutputStream fileOutputStream; 
     fileOutputStream = new FileOutputStream(file); 
     try (BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream)) { 
      fWorkbook.write(bos); 
     } 
     fileOutputStream.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

有人可以告诉我,为什么我会收到空​​指针异常如何纠正它。

回答

0

尝试通过

cell.setCellValue(Objects.toString(model.getValueAt(i, j), "")); 

更换

cell.setCellValue(model.getValueAt(i, j).toString()); 

而且看我已经张贴在我的评论的链接。

P.S.类Objects被定义在包java.util

+0

非常感谢bro替换解决了我的问题 –