java 读取excel写入数据库
综合百科
2025年11月21日 00:02 238
admin
Java实现Excel读取与数据库写入的高效方法
在当今数据驱动的时代,处理和分析大量数据已成为企业决策的重要依据,Excel作为一种广泛使用的数据存储格式,其便捷性和易操作性使得它成为数据交换的首选工具之一,随着数据量的不断增长,手动将Excel中的数据导入到数据库中变得越来越低效且容易出错,掌握如何利用Java编程语言自动完成这一过程显得尤为重要,本文将详细介绍如何使用Java读取Excel文件并将其数据写入数据库,旨在帮助开发者提高工作效率,减少人为错误。

准备工作
在进行Java程序开发之前,需要确保已经安装了以下软件和库:
- JDK(Java Development Kit):用于编译和运行Java代码。
- Apache POI:一个强大的Java库,用于读写Microsoft Office格式的文件,包括Excel。
- 数据库连接池:如HikariCP或C3P0,以提高数据库访问效率。
- 目标数据库:MySQL、Oracle等,根据实际需求选择合适的数据库系统。
读取Excel文件
我们需要从Excel文件中提取数据,假设我们使用的是.xlsx格式的Excel文件,并且想要读取其中名为“DataSheet”的工作表,以下是一段示例代码,演示了如何使用Apache POI库来实现这一功能:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
public class ExcelReader {
public List<String[]> readExcel(String filePath) throws Exception {
List<String[]> data = new ArrayList<>();
try (FileInputStream fis = new FileInputStream(filePath); Workbook workbook = new XSSFWorkbook(fis)) {
Sheet sheet = workbook.getSheet("DataSheet");
for (Row row : sheet) {
int cellCount = row.getLastCellNum();
String[] rowData = new String[cellCount];
for (int i = 0; i < cellCount; i++) {
rowData[i] = row.getCell(i).toString();
}
data.add(rowData);
}
}
return data;
}
}
将数据写入数据库
我们将读取到的数据存储到数据库中,这里以MySQL为例进行说明,确保已经在数据库中创建了相应的表结构,可以使用JDBC API来执行SQL语句,将数据插入到数据库中,下面是一个示例代码片段:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.List;
public class DatabaseWriter {
private static final String URL = "jdbc:mysql://localhost:3306/yourdatabase";
private static final String USER = "username";
private static final String PASSWORD = "password";
public void writeToDatabase(List<String[]> data) throws Exception {
String insertQuery = "INSERT INTO your_table (column1, column2, ...) VALUES (?, ?, ...)";
try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
PreparedStatement preparedStatement = connection.prepareStatement(insertQuery)) {
for (String[] row : data) {
for (int i = 0; i < row.length; i++) {
preparedStatement.setString(i + 1, row[i]);
}
preparedStatement.executeUpdate();
}
}
}
}
整合流程
最后一步是将上述两个步骤结合起来,形成一个完整的工作流程,可以创建一个主类来调用这些方法:
public class Main {
public static void main(String[] args) {
try {
ExcelReader reader = new ExcelReader();
DatabaseWriter writer = new DatabaseWriter();
List<String[]> data = reader.readExcel("path/to/your/excel/file.xlsx");
writer.writeToDatabase(data);
System.out.println("Data has been successfully written to the database.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
通过这种方式,我们不仅能够自动化地处理大量的数据迁移任务,而且还能保证整个过程的一致性和准确性,这种方法还可以轻松地扩展到其他类型的数据处理场景中,比如从CSV文件导入数据、批量更新数据库记录等。
标签: Java Excel
相关文章

发表评论