Java把不同Excel表的信息存入数据库
在现实生活和工作中,我们经常需要处理不同来源的Excel表格数据,并将其存储到数据库中进行进一步的分析和处理。本文将介绍如何使用Java编程语言实现这一功能,以及提供一个基本的代码示例。
准备工作
在开始之前,我们需要准备一些必要的工具和库:
- Java开发环境(JDK)
- Apache POI库,用于处理Excel文件
- JDBC库,用于连接和操作数据库
你可以从官方网站下载并安装JDK,并使用Maven或Gradle等构建工具导入所需的库。
导入Excel数据
首先,我们需要从Excel文件中读取数据。Apache POI库提供了一种简单的方式来处理Excel文件。下面是一个示例代码,演示了如何从一个工作表中读取数据:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.InputStream;
public class ExcelReader {
public static void main(String[] args) {
try {
// 打开Excel文件
InputStream inputStream = new FileInputStream("path/to/excel.xlsx");
// 创建工作簿对象
Workbook workbook = new XSSFWorkbook(inputStream);
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 遍历每一行
for (Row row : sheet) {
// 遍历每一列
for (Cell cell : row) {
// 读取单元格数据
String value = cell.getStringCellValue();
System.out.print(value + "\t");
}
System.out.println();
}
// 关闭流和资源
workbook.close();
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个示例中,我们使用FileInputStream
打开Excel文件,创建一个XSSFWorkbook
对象来表示整个工作簿。然后,我们通过getSheetAt
方法获取第一个工作表,并使用嵌套的循环遍历每一行和每一列。最后,在循环中,我们使用getStringCellValue
方法读取单元格的值。
请注意,上述代码中的"path/to/excel.xlsx"
应该替换为实际的Excel文件路径。
连接数据库
接下来,我们需要将从Excel读取的数据存储到数据库中。我们可以使用Java的JDBC库来连接和操作数据库。下面是一个示例代码,演示了如何连接到数据库并插入数据:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class DatabaseWriter {
public static void main(String[] args) {
try {
// 连接数据库
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
// 准备SQL语句
String sql = "INSERT INTO mytable (column1, column2, column3) VALUES (?, ?, ?)";
// 创建预编译语句对象
PreparedStatement statement = connection.prepareStatement(sql);
// 设置参数并执行语句
statement.setString(1, "value1");
statement.setString(2, "value2");
statement.setString(3, "value3");
statement.executeUpdate();
// 关闭资源
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个示例中,我们使用DriverManager.getConnection
方法连接到数据库。请将"jdbc:mysql://localhost:3306/mydatabase"
替换为实际的数据库连接URL,"username"
和"password"
替换为数据库的用户名和密码。
然后,我们准备一个SQL语句,使用?
作为占位符。创建一个预编译语句对象,并使用setString
方法设置参数的值。最后,执行更新语句并关闭资源。
请注意,上述示例只插入了一行数据,你可以根据需要在循环中插入更多数据。
整合代码
现在,我们将上述两个示例代码整合到一个完整的程序中,以实现将Excel数据存储到数据库的功能:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql