整理分享Springboot项目中java实现将数据库表中指定表中的的数据按条件导出生成Excel表格的功能实现(学习笔记)

news2025/2/26 2:07:37

在Spring Boot中,我们可以使用Apache POI库来实现将数据库表中的数据导出为Excel表格。可以根据条件从数据库中查询数据并将其导出为Excel:如下
准备工作:首先,确保在你的项目中引入Apache POI依赖。在pom.xml文件中添加以下依赖项:

<dependencies>
    ...
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.2</version>
    </dependency>
    ...
</dependencies>

创建一个Java类,例如"ExcelExporter.java",并编写导出方法:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ExcelExporter {

    public static void exportDataToExcel(String condition) {
        String url = "jdbc:mysql://your_database_host:port/database_name";
        String username = "your_username";
        String password = "your_password";

        try (Connection conn = DriverManager.getConnection(url, username, password)) {
            String sql = "SELECT * FROM your_table WHERE " + condition;
            PreparedStatement statement = conn.prepareStatement(sql);
            ResultSet resultSet = statement.executeQuery();

            Workbook workbook = new SXSSFWorkbook();
            Sheet sheet = workbook.createSheet("Sheet1");
            int rowCount = 0;

            while (resultSet.next()) {
                Row row = sheet.createRow(rowCount);
                for (int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++) {
                    Cell cell = row.createCell(i - 1);
                    cell.setCellValue(resultSet.getString(i));
                }
                rowCount++;
            }

            FileOutputStream outputStream = new FileOutputStream("output.xlsx");
            workbook.write(outputStream);
            workbook.close();
            outputStream.close();

            System.out.println("Excel exported successfully!");

        } catch (SQLException | IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        exportDataToExcel("your_condition");
    }
}

备注:

在上面的代码中,你需要替换以下占位符:

"your_database_host:port" - 数据库主机和端口号
"database_name" - 数据库名称
"your_username" - 数据库用户名
"your_password" - 数据库密码
"your_table" - 要导出数据的表名
"condition" - 查询数据的条件
运行"ExcelExporter.java"类的 ​main​方法,它将执行导出操作并生成一个名为"output.xlsx"Excel文件。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/862957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑蓝屏显示恢复怎么办,电脑蓝屏后出现恢复界面怎么回事

电脑蓝屏显示恢复怎么办,电脑蓝屏后出现恢复界面怎么回事 目录 下面是问题描述&#xff08;看看和你遇到的问题一不一样&#xff09; 图片一 图片二 图片三 开始解决问题 步骤 1&#xff1a;耐心等待 步骤 2&#xff1a;重启计算机 步骤 3&#xff1a;进入安全模式 步骤…

USB协议精读

1.1.枚举 1.1.1.上电连接过程 1.1.2.设备识别过程 1.1.3.枚举过程 1.1.3.1.获取设备描述符&#xff08;只关注设备描述符中最大数据包长度&#xff09; 1.1.3.2.设置设备针对主机的唯一从机地址 1.1.3.3.获取完整设备描述符 1.1.3.4.获取配置描述符 先获取标准配置描述符&a…

关于replace()字符串截取的思考

使用replace方法获取组装所需字符串: 总结&#xff1a; 以上方法可用于获取文件名、获取获取文件后缀、组装自己想要的字符串

为Windows Terminal设置背景图片

直接通过界面上选项无法达到修改背景图片的目的&#xff0c;后再在官网&#xff0c;和git上找到通过修改配置文件来更改背景图片 首先打开设置界面 点击左下角打开settings.json文件 在json中profiles关键字default选项相面增加几个key,就像下面 修改前修改后 修改后的termin…

【问题记录】antd icons报rev属性缺失错误

闲来无事将项目中的antd从v4升级到了v5&#xff0c;之前正常的页面中如有图标&#xff0c;如<PlusOutlined />&#xff0c;总是报以下错误&#xff1a; TS2741: Property rev is missing in type {} but required in type Pick<AntdIconProps, "name" …

Games101学习笔记2

参考博客&#xff1a;GAMES101 梳理 / 个人向图形学笔记_games101笔记_river_of_sebajun的博客-CSDN博客 lecture 05 Rasterization 1(Triangles) 光栅化 把东西画在屏幕上的过程就是光栅化的过程 视口变换 为什么模型用三角形&#xff1f; 最基本的几何平面&#xff1b;保…

虹科Pico技术交流会 | 广州站圆满成功,免拆诊断汽修之旅启程成都!

全国巡回 / 技术交流 / 以技会友 成都&#xff1a;2023.9.2~9.3 主办单位 广州虹科电子科技有限公司 Tech Gear 免拆诊断学院 支持单位 英国Pico Technology Ltd. 上周末&#xff08;8月5、6号&#xff09;虹科Pico汽车示波器技术交流会在广州圆满举办&#xff01;在本次…

PPSLick.js-个人/初始团队的网站基础弹窗组件库,快速创建登录、注册、搜索、联系我和订阅等弹窗组件,无需写html+css

PPSlick 个人/初始团队的网站基础弹窗组件库 一个javascript组件库&#xff0c;提供基本的联系我、登录、注册、搜索和邮件订阅之类的弹窗组件&#xff08;无需写htmlcss&#xff09;&#xff0c;拿来即用 使用参考 1、搜索组件&#xff0c;参考testsearch.html //创建一个搜…

合并两个有序链表 题解

题目描述&#xff1a;21. 合并两个有序链表 - 力扣&#xff08;LeetCode&#xff09; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 题解思路&#xff1a; 创建一个新的链表&#xff0c;并将头节点设置为 newHead&#xf…

合成数据平台:释放结构化数据的生成式 AI 的力量

推荐&#xff1a;使用 NSDT场景编辑器 快速助你搭建可二次编辑的3D应用场景 创建机器学习或深度学习模型非常简单。如今&#xff0c;有不同的工具和平台不仅可以自动化创建模型的整个过程&#xff0c;甚至可以帮助您为特定数据集选择最佳模型。 通过创建模型解决问题所需的基本…

Linux系列:从0到1用Docker部署springboot项目

目录 1.前提条件 2.编写DockerFile镜像文件 3.打包SpringBoot项目 4.通过软件Xftp进行传输&#xff08;*&#xff09; 1.点击“文件-新建”​编辑 5.操作远程主机 1.docker构建 2.容器运行 6.容器的关闭和删除 1.前提条件 Linux、docker、xftp的安装、一台可以访问的远…

2023年“云舟杯”视频孪生演讲大赛总决赛完美收官

8月4日&#xff0c;智汇云舟举办的2023年“云舟杯”视频孪生演讲大赛总决赛以直播形式完美收官。来自全国近200家合作伙伴代表齐聚线上&#xff0c;共同观摩比赛。在巅峰之战中&#xff0c;参赛学员们充分展示了各自对行业数字化转型的敏锐洞察、对智汇云舟视频孪生技术与产品的…

Fortinet数据中心防火墙及服务ROI超300%!Forrester TEI研究发布

近日&#xff0c;专注网络与安全融合的全球网络安全领导者 Fortinet&#xff08;NASDAQ&#xff1a;FTNT&#xff09;联合全球知名分析机构Forrester发布总体经济影响独立分析报告&#xff0c;详细阐述了在企业数据中心部署 FortiGate 下一代防火墙&#xff08;NGFW&#xff09…

从黑马程序员电商视觉设计上半年就业数据,看当下数字产业人才需求热点

近期&#xff0c;老牌数字化人才培训机构传智教育旗下的高端IT教育品牌——黑马程序员发布了2023上半年电商视觉设计学科的就业数据&#xff0c;班级平均就业率92%&#xff0c;一线城市平均月薪9161元&#xff0c;所有毕业生平均月薪8969元。 电商视觉设计行业热度高&#xff0…

Git (2)

文章目录 1. 删除文件2. 分支管理2.1 理解分支2.2 分支创建 &#xff0c; 分支切换2.3 分支合并2.4 删除分支2.5 合并冲突2.6 合并模式2.7 分支策略2.8 bug 分支2.9 强制删除分支 3. 远程操作3.1 创建远程仓库3.2 克隆远程仓库3.3 推送3.4 拉取3.5 gitignore 文件3.6 配置别名 …

Android侧滑栏(一)可缩放可一起移动的侧滑栏

在实际的各类App开发中&#xff0c;经常会需要做一个左侧的侧滑栏&#xff0c;类似于QQ这种。 今天这篇文章总结下自己在开发中遇到的这类可以跟随移动且可以缩放的侧滑栏。 一、实现原理 使用 HorizontalScrollView 实现一个水平方向的可滑动的View&#xff0c;左布局为侧滑…

为c语言安装easyx图形库

按照图上的步骤&#xff0c;安装easyx图形库。 接下来看代码&#xff1a; #include<easyx.h> #include<stdio.h> #define width 800 #define height 600int main() {initgraph(width, height); // 初始化窗口&#xff08;宽度&#xff0c; 高度&#xff09;…

OpenHarmony社区运营报告(2023年7月)

本月快讯 • 2023年7月28日-29日&#xff0c;全球软件质量&效能大会&#xff08;简称“QECon”&#xff09;圆满举行&#xff0c;OpenAtom OpenHarmony&#xff08;简称“OpenHarmony”&#xff09;以“优质高效测试助力OpenHarmony北向应用生态赋能”为主题&#xff0c;以…

Java项目作业~ 通过html+Servlet+MyBatis,完成站点信息的添加功能

需求&#xff1a; 通过htmlServletMyBatis&#xff0c;完成站点信息的添加功能。 以下是站点表的建表语句&#xff1a; CREATE TABLE websites (id int(11) NOT NULL AUTO_INCREMENT,name char(20) NOT NULL DEFAULT COMMENT 站点名称,url varchar(255) NOT NULL DEFAULT ,…

目标识别模型两种部署形态图

目标检测预训练模型基于新数据进行微调&#xff08;训练&#xff09;之后&#xff0c;得到一个权重文件。 在日常工业、车载等需求环境下&#xff0c;需要在嵌入式移动端的软件系统中调用该模型文件进行推断测试&#xff0c;软件系统追求性能经常使用C/C进行编码实现&#xff…