数据库多张表导出到excel

简介: 数据库多张表导出到excelpublic static void export() throws Exception{   //声明需要导出的数据库   String dbName = "hdcloude";   //声明book   HSSFWorkbook book = new H...

 数据库多张表导出到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"));

}

若转载请注明出处!若有疑问,请回复交流!
目录
相关文章
|
28天前
|
easyexcel
【EasyExcel】第二篇:导出excel文件,导出多个sheet工作空间
【EasyExcel】第二篇:导出excel文件,导出多个sheet工作空间
|
29天前
|
人工智能 数据可视化 机器人
【办公自动化】Excel透视表的简单应用
【办公自动化】Excel透视表的简单应用
|
1月前
|
SQL 数据库连接 数据库
【SQL Server】2. 将数据导入导出到Excel表格当中
【SQL Server】2. 将数据导入导出到Excel表格当中
46 0
|
29天前
|
JavaScript 前端开发
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
|
5天前
|
JSON JavaScript 前端开发
使用JavaScript和XLSX.js将数据导出为Excel文件
使用JavaScript和XLSX.js将数据导出为Excel文件
16 0
|
13天前
|
数据库
如何把Excel导入到数据库中
如何把Excel导入到数据库中
8 0
|
18天前
|
easyexcel 数据库
公司大佬对excel导入、导出的封装,那叫一个秒啊
封装公司统一使用的组件的主要目标是为了简化开发人员的调用流程,避免各个项目组重复集成和编写不规范的代码。文中提到对阿里EasyExcel进行了二次封装,提供了导入和导出功能,并支持模板的导入和导出。此外,还处理了读取数据与实际保存数据不一致的情况,通过提供自定义转换器来解决。
39 0
|
18天前
|
数据库
开发指南009-从list导出excel文件
从数据库返回一般是对象的列表,平台底层提供了从list转为excel文件的方法
|
18天前
|
前端开发
开发指南007-导出Excel
平台上开发导出Excel比过去的单体架构要复杂些,因为前端和后台不在一个进程空间里。
|
28天前
|
easyexcel 数据库
【EasyExcel】第一篇:动态导入excel,生成对应数据库表
【EasyExcel】第一篇:动态导入excel,生成对应数据库表