EasyExcel来解析Excel文件(导入数据库)

devtools/2024/9/23 3:58:18/

1.具体实现及代码

使用EasyExcel来解析Excel文件并将内容插入数据库是一个很好的选择,因为EasyExcel具有高效、简单的特点。以下是一个使用EasyExcel和JDBC来完成这一任务的示例。

 依赖
首先,确保你在项目中包含了EasyExcel和JDBC的相关依赖。以下是Maven依赖:


<dependencies><!-- EasyExcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.0</version> <!-- 请使用最新版本 --></dependency><!-- MySQL JDBC Driver --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version> <!-- 请根据你的MySQL版本调整 --></dependency>
</dependencies>

 示例代码
以下示例代码展示了如何使用EasyExcel读取Excel文件并将数据插入到MySQL数据库中。

 定义数据模型
首先,定义一个类来表示Excel中的数据。

java">
public class UserData {private String name;private Double age;// Getters and setterspublic String getName() {return name;}public void setName(String name) {this.name = name;}public Double getAge() {return age;}public void setAge(Double age) {this.age = age;}
}

 读取Excel文件并插入数据库
接下来,编写代码来读取Excel文件并将数据插入到数据库中。

java">
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.read.builder.ExcelReaderBuilder;
import com.alibaba.excel.read.builder.ExcelReaderSheetBuilder;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;public class ExcelToDatabase {private static final String JDBC_URL = "jdbc:mysql://localhost:3306/your_database";private static final String USERNAME = "your_username";private static final String PASSWORD = "your_password";public static void main(String[] args) {String excelFilePath = "path/to/your/excel/file.xlsx";// 读取Excel文件List<UserData> dataList = readExcel(excelFilePath);// 插入数据库insertIntoDatabase(dataList);}private static List<UserData> readExcel(String filePath) {List<UserData> dataList = new ArrayList<>();ExcelReaderBuilder readerBuilder = EasyExcel.read(filePath, UserData.class, new AnalysisEventListener<UserData>() {@Overridepublic void invoke(UserData data, AnalysisContext context) {dataList.add(data);}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 解析完成后的操作}});ExcelReaderSheetBuilder sheetBuilder = readerBuilder.sheet();sheetBuilder.doRead();return dataList;}private static void insertIntoDatabase(List<UserData> dataList) {String sql = "INSERT INTO your_table (name, age) VALUES (?, ?)";try (Connection connection = DriverManager.getConnection(JDBC_URL, USERNAME, PASSWORD);PreparedStatement statement = connection.prepareStatement(sql)) {for (UserData data : dataList) {statement.setString(1, data.getName());statement.setDouble(2, data.getAge());statement.addBatch();}statement.executeBatch();} catch (SQLException e) {e.printStackTrace();}}
}

 2.详细说明

1. 数据模型类`UserData`:这个类表示Excel中的每一行数据。根据你的Excel文件的结构,可以调整这个类。

2. 读取Excel文件:使用EasyExcel的`ExcelReaderBuilder`和`ExcelReaderSheetBuilder`来读取Excel文件。`AnalysisEventListener`用于逐行处理数据,并将数据存储到`dataList`中。

3. 插入数据库:使用JDBC连接到数据库,并使用`PreparedStatement`进行批量插入操作。通过`addBatch()`方法添加到批处理,最后执行`executeBatch()`。

 注意事项
- 确保Excel文件路径和数据库连接信息正确。
- 根据实际Excel文件的结构和数据库表结构调整`UserData`类和SQL语句。
- 考虑异常处理和日志记录,以便在发生错误时能更容易地进行调试。

通过上述步骤,你可以使用EasyExcel高效地读取Excel文件并将其内容插入到数据库中。如果需要更多的定制和错误处理,可以根据具体需求进行扩展。


http://www.ppmy.cn/devtools/42615.html

相关文章

使用DockerFile 编写 指令来构建镜像

文章目录 前言使用DockerFile 编写 指令来构建镜像1. 构建2. 验证 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&#x…

Langchain-Chatchat之pdf转markdown格式

文章目录 背景开发环境loader文本解析步骤markdown格式的文本为什么选择markdown格式测试markdown格式提取表格原pdf表格markdown格式的表格 测试markdown格式的知识库运行项目修改文件加载器loader 其他问题运行项目报错查看系统当前的max_user_watches修改sysctl.conf配置 图…

2024电工杯B题保姆级分析完整思路+代码+数据教学

2024电工杯B题保姆级分析完整思路代码数据教学 B题题目&#xff1a;大学生平衡膳食食谱的优化设计及评价 接下来我们将按照题目总体分析-背景分析-各小问分析的形式来 总体分析&#xff1a; 题目要求对两份一日膳食食谱进行营养分析和调整&#xff0c;然后设计优化的平衡膳…

【路由組件】

完成Vue Router 安装后&#xff0c;就可以使用路由了&#xff0c;路由的基本使用步骤&#xff0c;首先定义路由组件&#xff0c;以便使用Vue Router控制路由组件展示与 切换&#xff0c;接着定义路由链接和路由视图&#xff0c;以便告知路由组件渲染到哪个位置&#xff0c;然后…

【AI】如何用非Docker方法安装类GPT WebUI

【背景】 本地LLM通信的能力需要做成局域网SAAS服务才能方便所有人使用。所以需要安装WebUI&#xff0c;这样既有了用户界面&#xff0c;又做成了SAAS服务&#xff0c;很理想。 【问题】 文档基本首推都是Docker安装&#xff0c;虽然很多人都觉得容器多么多么方便&#xff0…

星型模型和雪花模型的区别

星型模型和雪花模型都是数据仓库设计中常用的维度建模方法&#xff0c;它们之间的主要区别在于数据组织结构、数据冗余度、查询效率、可扩展性和正规化程度等方面&#xff1a; 星型模型 结构特点&#xff1a;星型模型中&#xff0c;一个中心的事实表连接多个维度表&#xff0…

linux系统安全加固

目录 1、账户安全基本措施 1&#xff09;系统账户清理 2&#xff09;密码安全控制 3&#xff09;命令历史限制 2、用户切换及提权 1&#xff09;使用 su命令切换用户 2&#xff09;使用sudo机制提升权限 3、系统引导和安全登录控制 1&#xff09;开机安全控制 2&…

【知识蒸馏】多任务模型 logit-based 知识蒸馏实战

一、什么是逻辑&#xff08;logit&#xff09;知识蒸馏 Feature-based蒸馏原理是知识蒸馏中的一种重要方法&#xff0c;其关键在于利用教师模型的隐藏层特征来指导学生模型的学习过程。这种蒸馏方式旨在使学生模型能够学习到教师模型在特征提取和表示方面的能力&#xff0c;从…