星空网 > 软件开发 > Java

将某个数据库的表全部导出到excel中(43)

 如何操作excel。――POI-apache。JXL-。

第一步:如何用POI操作Excel

@Test  public void createXls() throws Exception{    //声明一个工作薄    HSSFWorkbook wb = new HSSFWorkbook();    //声明表    HSSFSheet sheet = wb.createSheet("第一个表");    //声明行    HSSFRow row = sheet.createRow(7);    //声明列    HSSFCell cel = row.createCell(3);    //写入数据    cel.setCellValue("你也好");        FileOutputStream fileOut = new FileOutputStream("d:/a/b.xls");    wb.write(fileOut);    fileOut.close();  }

第二步:导出指定数据库的所有表

       分析:

       1:某个数数据库有多少表,表名是什么?―――DataBaseMetadate.getMetadate().getTables(null,null,null,new String[]{Table});  - excel的文件名称。

  2:对每一个表进行select * 操作。 - 每一个sheet的名称。

  3:分析表结构,rs.getMetadate(); ResultSetMedated

  4:多个列,列名是什么.  - 字段名就是sheet的第一行信息。

  5:获取每一行的数据 – 放到sheet第一行以后。

@Test  public void export() throws Exception{    //声明需要导出的数据库    String dbName = "focus";    //声明book    HSSFWorkbook book = new HSSFWorkbook();    //获取Connection,获取db的元数据    Connection con = DataSourceUtils.getConn();    //声明statemen    Statement st = con.createStatement();    //st.execute("use "+dbName);    DatabaseMetaData dmd = con.getMetaData();    //获取数据库有多少表    ResultSet rs = dmd.getTables(dbName,dbName,null,new String[]{"TABLE"});    //获取所有表名 - 就是一个sheet    List<String> tables = new ArrayList<String>();    while(rs.next()){      String tableName = rs.getString("TABLE_NAME");      tables.add(tableName);    }    for(String tableName:tables){      HSSFSheet sheet = book.createSheet(tableName);      //声明sql      String sql = "select * from "+dbName+"."+tableName;      //查询数据      rs = st.executeQuery(sql);      //根据查询的结果,分析结果集的元数据      ResultSetMetaData rsmd = rs.getMetaData();      //获取这个查询有多少行      int cols = rsmd.getColumnCount();      //获取所有列名      //创建第一行      HSSFRow row = sheet.createRow(0);      for(int i=0;i<cols;i++){        String colName = rsmd.getColumnName(i+1);        //创建一个新的列        HSSFCell cell = row.createCell(i);        //写入列名        cell.setCellValue(colName);      }      //遍历数据      int index = 1;      while(rs.next()){        row = sheet.createRow(index++);        //声明列        for(int i=0;i<cols;i++){          String val = rs.getString(i+1);          //声明列          HSSFCell cel = row.createCell(i);          //放数据          cel.setCellValue(val);        }      }    }    con.close();    book.write(new FileOutputStream("d:/a/"+dbName+".xls"));  }

 




原标题:将某个数据库的表全部导出到excel中(43)

关键词:数据库

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流