首页 > 编程 > Java > 正文

java导出数据库的全部表到excel

2019-11-26 14:30:06
字体:
来源:转载
供稿:网友

本文实例为大家分享了java将某个数据库的表全部导出到excel中的方法,供大家参考,具体内容如下

第一步:如何用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")); }

以上就是本文的全部内容,希望对大家的学习有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表