itext poi 学习之旅 (3)读取数据库信息并由excel展现出来

简介: DBConnection.java连接数据库操作package com.zkbj.poi;import java.
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设计还未了解。。。以后还会更新,期待我下次更新吧。。

目录
相关文章
|
9月前
|
存储 安全 大数据
网安工程师必看!AiPy解决fscan扫描数据整理难题—多种信息快速分拣+Excel结构化存储方案
作为一名安全测试工程师,分析fscan扫描结果曾是繁琐的手动活:从海量日志中提取开放端口、漏洞信息和主机数据,耗时又易错。但现在,借助AiPy开发的GUI解析工具,只需喝杯奶茶的时间,即可将[PORT]、[SERVICE]、[VULN]、[HOST]等关键信息智能分类,并生成三份清晰的Excel报表。告别手动整理,大幅提升效率!在安全行业,工具党正碾压手动党。掌握AiPy,把时间留给真正的攻防实战!官网链接:https://www.aipyaipy.com,解锁更多用法!
|
5月前
|
SQL 关系型数据库 MySQL
如何将Excel表的数据导入RDS MySQL数据库?
本文介绍如何通过数据管理服务DMS将Excel文件(转为CSV格式)导入RDS MySQL数据库,涵盖建表、编码设置、导入模式选择及审批执行流程,并提供操作示例与注意事项。
|
8月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
545 3
Jasypt加密数据库配置信息
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
537 15
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
5010 2
|
SQL NoSQL 关系型数据库
数据库学习
【10月更文挑战第8天】
203 1
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
656 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
2881 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
1097 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql

热门文章

最新文章