博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库多张表导出到excel
阅读量:6704 次
发布时间:2019-06-25

本文共 1488 字,大约阅读时间需要 4 分钟。

 数据库多张表导出到excel

public static void export() throws Exception{

  //声明需要导出的数据库

  String dbName = "hdcloude";

  //声明book

  HSSFWorkbook book = new HSSFWorkbook();

  //获取Connection,获取db的元数据

  //Connection con = DataSourceUtils.getConn();

  Connection con =DriverManager.getConnection("jdbc:MySQL://127.0.0.1:3306", "root", "root");

  //声明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");

  System.out.println(tableName);

  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("\\"+dbName+".xls"));

}

若转载请注明出处!若有疑问,请回复交流!
你可能感兴趣的文章
qt 试用 (3)配置编译源代码及调试
查看>>
(转)用CSS3移除点击交互元素的高亮背景
查看>>
遍历json获得数据的几种方法
查看>>
php Collection类的设计
查看>>
c++中的计时器代码
查看>>
语义Web和本体开发相关技术
查看>>
Mysql集群读写分离(Amoeba)
查看>>
Quest for sane signals in Qt - step 1 (hand coding a Q_OBJECT)
查看>>
SpringBoot的注解:@SpringBootApplication注解 vs @EnableAutoConfiguration+@ComponentScan+@Configuration...
查看>>
MVVM模式之:ViewModel Factory与注入
查看>>
SQL Server性能调优之执行计划深度剖析 第一节 浅析SQL执行的过程
查看>>
Adhesive框架系列文章--报警服务模块使用和实现
查看>>
利用自定义IHttpModule来实现URL地址重写
查看>>
在网页上嵌入 PowerPoint 演示文稿
查看>>
javascript日期格式化函数,跟C#中的使用方法类似
查看>>
CURL基于cookie的自动登录脚本
查看>>
Android杂谈--Activity、Window、View的关系
查看>>
使用delphi 开发多层应用(十)安全访问服务器
查看>>
JavaScript计算字符串中每个字符出现的次数
查看>>
mvc中的ViewData用到webfrom中去
查看>>