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

本文实例为大家分享了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"));
 }

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

(0)

相关推荐

  • JavaWeb中导出excel文件的简单方法

    在平时做系统项目时,经常会需要做导出功能,不论是导出excel,还是导出cvs文件.我下面的demo是在springmvc的框架下实现的. 1.JS中只需要用GET模式请求导出就可以了: $('#word-export-btn').parent().on('click',function(){ var promotionWord = JSON.stringify($('#mainForm').serializeObject()); location.href="${ctx}/promotionW

  • JavaWeb导出Excel文件并弹出下载框

    一.引言 在Java Web开发中经常涉及到报表,最近做的项目中需要实现将数据库中的数据显示为表格,并且实现导出为Excel文件的功能. 二.相关jar包 使用POI可以很好的解决Excel的导入和导出的问题,POI下载地址: poi-3.6-20091214.jar 三.关键代码 首先导入上述jar包. 在生成excel时一般数据源形式为一个List,下面把生成Excel格式的代码贴出来: /** * 以下为生成Excel操作 */ // 1.创建一个workbook,对应一个Excel文件

  • java常用工具类之Excel操作类及依赖包下载

    依赖包下载:http://xiazai.jb51.net/201407/tools/java-excel-dependency(jb51.net).rar Excel工具类ExcelUtil.java源码: package com.itjh.javaUtil; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStr

  • java实现excel导入数据的工具类

    导入Excel数据的工具类,调用也就几行代码,很简单的. 复制代码 代码如下: import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;import org.apache.commons.beanutils.BeanUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory; import java.io.IOExc

  • Java数据导出功能之导出Excel文件实例

    在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主.下面给出用java写入数据到excel表格方法: 1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件.下载地址:http://www.andykhan.com/jexcelapi/ 2.jxl对Excel表格的认识 可以参见:http://www.jb51.net/article/686

  • 在java poi导入Excel通用工具类示例详解

    前言 本文主要给大家介绍了关于java poi导入Excel通用工具类的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 问题引入和分析 提示:如果不想看罗嗦的文章,可以直接到最后点击源码下载运行即可 最近在做一个导入Excel的功能,在做之前在百度上面查找"java通用导入Excel工具类",没有查到,大多数都是java通用导出Excel.后来仔细想想,导出可以利用java的反射,做成通用的,放进相应的实体成员变量中,导入为什么不可以呢?也是可以的,不过在做

  • Java使用excel工具类导出对象功能示例

    本文实例讲述了Java使用excel工具类导出对象功能.分享给大家供大家参考,具体如下: package com.gcloud.common; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.streaming.SXSSFSheet; import

  • java实现的导出Excel工具类实例

    本文实例讲述了java实现的导出Excel工具类.分享给大家供大家参考,具体如下: ExcelExportUtil: package com.excel; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.HashSet; import java.util.Map; import java.util.Set; import java.

  • Java根据模板导出Excel报表并复制模板生成多个Sheet页

    因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为  根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时,如果需求是每个Sheet页中的数据都不一致,但是表格样式和模板都一样 那么只需要在实际情况中根据 sql 来查询要添加的数据源 (只需更改数据源即可) 采用的技术为 POI 导出,因为类的缘故,目前只支持2003版本的Excel. 使用前请先下载相应jar包! 后期有时间的话会进行进一步完善,初次

  • JavaWeb动态导出Excel可弹出下载

    由于项目需求,需要将数据导出成Excel表格,并且可选择导出项,可下载.项目使用的Spring+Mybatis+SpringMVC框架,利用Apache POI导出Excel.POI具体使用请自行百度.话不多说,上代码. ExportExcelUtil代码 package com.rixin.common.util; import java.io.OutputStream; import java.lang.reflect.Method; import java.net.URLEncoder;

随机推荐