zoukankan      html  css  js  c++  java
  • itext poi 学习之旅 (3)读取数据库信息并由excel展现出来

    DBConnection.java

    连接数据库操作

    package com.zkbj.poi;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class DBConnection {
        private final String DBUrl = "jdbc:mysql://localhost:3306/****";   //1.修改数据库名
        private final String DBDriver = "com.mysql.jdbc.Driver";
        private final String username = "**";                   //2.修改成你的MySql登录名和密码
        private final String password = "***";
        private Connection con;
    
        public DBConnection() {
            try {
                Class.forName(DBDriver);
                con = DriverManager.getConnection(DBUrl, username, password);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        public Connection getDB() {
            return con;
        }
    
        public void closeDb(ResultSet rs, PreparedStatement ps) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
    
                    e.printStackTrace();
                }
            }
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    ProductDir.java

    读取产品信息数据并导出execl格式数据

    package com.zkbj.poi;
    
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRichTextString;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    
    public class ProductDirExcel {
        public ProductDirExcel() throws Exception {
            Connection con = null;
            DBConnection db = new DBConnection();
            con = db.getDB();
            String sql = "select * from productdir";
            ResultSet rs = con.createStatement().executeQuery(sql);
            // 获取总列数
            int CountColumnNum = rs.getMetaData().getColumnCount();
            int i = 1;
            // 创建Excel文档
            HSSFWorkbook wb = new HSSFWorkbook();
            // sheet 对应一个工作页
            HSSFSheet sheet = wb.createSheet("productdir表中的数据");  //3.修改成你的Sheet
            HSSFRow firstrow = sheet.createRow(0); // 下标为0的行开始
            HSSFCell[] firstcell = new HSSFCell[CountColumnNum];
            String[] names = new String[CountColumnNum];
            names[0] = "产品ID";                                     //4.修改成你的数据库数据名称。
            names[1] = "产品名称";
            names[2] = "产品版本";
            names[3] = "产品备注";
            names[4] = "产品分类ID";
    
            for (int j = 0; j < CountColumnNum; j++) {
                firstcell[j] = firstrow.createCell((short) j);
                firstcell[j].setCellValue(new HSSFRichTextString(names[j]));
            }
            while (rs.next()) {
                // 创建电子表格的一行
                HSSFRow row = sheet.createRow(i); // 下标为1的行开始
                for (int j = 0; j < CountColumnNum; j++) {
                    // 在一行内循环
                    HSSFCell cell = row.createCell((short) j);
                    // 设置表格的编码集,使支持中文
                    // // 先判断数据库中的数据类型
                    // 将结果集里的值放入电子表格中
                    cell.setCellValue(new HSSFRichTextString(rs.getString(j + 1)));
                }
                i++;
            }
            // 创建文件输出流,准备输出电子表格
            OutputStream out = new FileOutputStream("D:\productdir.xls");            //5.修改成你创建Excel路径 并有这个文件展示数据
            wb.write(out);
            out.close();
            System.out.println("数据库导出成功");
            rs.close();
            con.close();
        }
    
        public static void main(String[] args) {
            try {
                @SuppressWarnings("unused")
                ProductDirExcel excel = new ProductDirExcel();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    经过以上步骤可以使我们能够从数据库中导出数据并由Execel表示出来。

    如果需要导出其他数据库只需要修改几组程序就可以完美表现出来,由于博主初学poi 所以对其Css设计还未了解。。。以后还会更新,期待我下次更新吧。。

  • 相关阅读:
    XAF 有条件的对象访问权限
    XAF 顯示 UnInplace Report(設置自定義條件顯示報表,不是根據選擇ListView記錄條件顯示報表)
    XAF 如何自定义PivotGrid单元格显示文本?
    XAF 如何布局详细视图上的按钮
    XAF How to set size of a popup detail view
    XAF Delta Replication Module for Devexpress eXpressApp Framework
    XAF 帮助文档翻译 EasyTest Basics(基础)
    XAF 用户双击ListView记录时禁止显示DetailView
    XAF How to enable LayoutView mode in the GridControl in List Views
    XAF 如何实现ListView单元格批量更改?
  • 原文地址:https://www.cnblogs.com/bohanfu/p/5697836.html
Copyright © 2011-2022 走看看