我是个JAVA初学者,现正自己试着开发一个图书管理系统小程序,想用java实现将JTable中的数据导出到EXCEL中,想了好几天都没找到合适简便的方法。希望各位高手能给我指教下,最好能给出具体的代码和注释。不胜感激!!!

解决方案 »

  1.   

    推荐poi组件
    下面是我的一段代码:private void createRSExcel() throws Exception {
          if(!filePath.equals("nullnull")){
              HSSFWorkbook workBook = new HSSFWorkbook();
              HSSFSheet sheet = null;
              try {
                  //写入各条记录,每条记录对应Excel中的一行
                  String tb = "";
                  int k = 0;
                  while (rs.next()) {
                      if (!tb.equals("幼儿园信息")) {
                          sheet = workBook.createSheet("幼儿园信息"); //设置表名
                          setInfantCellTitle(sheet);
                          k = 1;
                      } else {
                          k++;
                      }
                      tb = "幼儿园信息";
                      HSSFRow row = sheet.createRow(k);
                      row.createCell((short) 0).setCellValue(rs.getInt("infantId"));
                      row.createCell((short) 1).setCellValue(rs.getString(
                              "infantName"));
                      row.createCell((short) 2).setCellValue(rs.getString("master"));
                      row.createCell((short) 3).setCellValue(rs.getString("city"));
                      row.createCell((short) 4).setCellValue(rs.getString("country"));
                      row.createCell((short) 5).setCellValue(rs.getString("address"));
                      row.createCell((short) 6).setCellValue(rs.getInt("type"));
                      row.createCell((short) 7).setCellValue(rs.getString(
                              "publicPhone"));
                      row.createCell((short) 8).setCellValue(rs.getString(
                              "selfPhone"));
                      row.createCell((short) 9).setCellValue(rs.getString("Email"));
                      row.createCell((short) 10).setCellValue(rs.getString("QQ"));
                      row.createCell((short) 11).setCellValue(rs.getString("postId"));
                      row.createCell((short) 12).setCellValue(rs.getString(
                              "teacherCount"));
                      row.createCell((short) 13).setCellValue(rs.getString("memo"));
                  }
                  FileOutputStream fOut = new FileOutputStream(filePath);
                  workBook.write(fOut);
                  fOut.flush();
                  fOut.close();
                  JOptionPane.showMessageDialog(null, "导出成功!");
              } catch (java.io.FileNotFoundException ex) {
                  JOptionPane.showMessageDialog(null,
                                                "所要导出的Excel文件被占用,请关闭该文件并重试此操作!");
              }
          }
      }
      

  2.   

    setInfantCellTitle(sheet);  
    我在调试的时候,这个语句的存在错误。
    上面这条语句是什么意思?
    后来我把它注释了,能够成功导出,但数据库中表中的字段名称无法在EXCEL中显示(显示空行)。
    有POI的使用帮助文档吗?中文的就更好。
    在此先谢了。