将某个数据库的表全部导出到excel中(43)

如何操作excel。――POI-apache。JXL-。

第一步:如何用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"));
    }
时间: 2024-10-10 05:22:59

将某个数据库的表全部导出到excel中(43)的相关文章

如何数据库表数据导出到excel中

1.首先须要有一个NPOI 2.接下来上代码 1 private void button1_Click(object sender, EventArgs e) 2 { 3 //1.通过Ado.net读取数据 4 string sql = "SELECT * FROM ASRS_F1"; 5 using (SqlDataReader reader = SqlHelper.ExecuteReader(sql, CommandType.Text)) 6 { 7 //如果读到数据 8 if (

表结构导出到excel中

SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, -- 字段序号 = a.colorder, 字段名 = a.name, 标识 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end, 主键 = cas

Toad导出数据字典,把数据库所有的表结构导出到htm中

Toad导出数据字典,把 数据库所有的表结构导出到htm中 第一步: 第二步:选择数据库 第三步:选择路径和设置其它配置 第四步:生成成功后, 系统会弹出提示框询问是否打开. 最终生成的表框架效果如下图所示: 在写软件文档时常常需要数据字典,用这个方法能够快速提取表结构.

在Access和MSSqlserver里都有将表直接导出到Excel的工具

在Access和MSSqlserver里都有将表直接导出到Excel的工具,可是当客户需要在程序里将数据库里的表生成Excel表格时,我们用一般的T-sql语句很难做到!下面是我结合网上资料和客户的需求写的代码,仅供学习交流. <%set rs=server.CreateObject("adodb.recordset")sql="select * from Stu_signUp order by id asc"rs.open sql,conn,1,1 Set

将数据库的数据导出到excel中

这篇文章主要介绍了asp中把数据导出为excel的2种方法:分别用excel组件.文件组件实现,需要的朋友可以参考下.我们在做项目的时候经常要将数据库的数据导出到excel中,很多asp用户并不知道怎么写.这里总结了两种方法来导出excel,希望能帮到大家. 方法一:用excel组件 方法二:使用文件组件 可以看出,第一种方法是直接导出的是excel文件,而第二张方法是到处的是文本文件,只不过后缀名改成了xls. 然后看起来就是excel了. 经过对比第一种方法的效率没有第二种方法的效率高,而且

c#如何实现excel导入到sqlserver,如何实现从sqlserver导出到excel中(详细)

对于从sqlserver中导入.导出excel,虽然sqlserver已经给了较为简单的方式,通过交互式的对话框形式实现,但是有时这种方式存在的很多问题,比方说导入.导出数据不全.而且,对于一个项目而言,我们都不希望功能的实现离开该软件程序.因此,我们便想着用程序来实现sqlserver的导入导出. 一.从sqlserver中导出excel表 我们将查出的数据首先要保存到数据表中DataTable,这里我就不具体说明如何从查出结果,存放到DataTable中了,相信网上有很多实现的例子. 接下拉

jsp 页面内容导出到Excel中

日常使用网络资源时经常需要把网页中的内容下载到本地,并且导出到Excel中,现在介绍一种非常简单的方式实现网络资源的下载.只需要讲jsp的最上面加上一句话 <% response.reset(); response.setContentType("application/vnd.ms-excel;charset=GBK"); %> 就可以将网页的内容导出为Excel. 目前给出的例子为了方便起见,就是使用了纯粹的静态页面,一个table其中有一行是标题,一行是内容,但是实际

将datagrid中数据导出到excel中 -------&lt;&lt;工作日志2014-6-6&gt;&gt;

1.下载log4j jar包,放入lib目录, 导入项目中   下载地址 http://logging.apache.org/ 2.创建log4j.properties 文件  目录 Src  下面是一个 log4j.properties的例子(注:来源于网上,非本人所写) ################################################################################ # 其语法:log4j.rootLogger = [ leve

html table导出到Excel中,不走后台,js完成

静态表格table <table class="table tableStyles" id="tables"> <caption>不正经的统计表</caption><!--可以生成表格的标题--> <thead> <tr> <th>品牌</th> <th>门店</th> <th>本周回访</th> <th>本月回