javaweb导出数据库数据形成表格

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

第一步:导入依赖包—POI包(excel文件生成需要)

下载地址:https://down.tongyixiazai.com/down/27412_20170622161632.zip
下载好的zip
选取以.jar结尾的的依赖包拖进你的web项目的lib目录下

对导入的.jar包进行添加到本项目中:
在这里插入图片描述
点击查看是否添加成功:
在这里插入图片描述
之后就可以使用POI操作Excel了

第二步:使用POI操作Excel

我们在Test里面进行讲解:

@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:/b.xls");
        wb.write(fileOut);
        fileOut.close();
    }

执行测试之后我们就可以在D盘目录下找到我们新创建的b.xls表格了。
在这里插入图片描述

注意:如果已经存在相同名字的文件,会被覆盖。

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

分析
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{
 //声明需要导出的数据库,focus为数据库名称
 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);
 }
 //此时的tables=>[表名, 表名, 表名]
 //循环访问依次表名
 for(String tableName:tables){
 //声明book中的各个表
  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:/"+dbName+".xls"));
 }

执行测试之后我们就可以在D盘目录下找到我们新创建的以数据库名称为名称的.xls表格了。
在这里插入图片描述

结束。

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值