实现POI读取Excel并导入到数据库实例 (poi导入excel到数据库实例)
随着数据化程度的提高,我们越来越依赖于各种数据工具来处理数据,比如常用的Excel表格和数据库。但是,当我们需要把Excel表格中的数据导入到数据库中时,传统的手动录入数据的方式往往会耗费大量的时间和精力。为了提高效率和减少错误率,我们可以考虑采用自动化的方式,即通过Java中的POI库来实现Excel文件的读取,并将数据导入到数据库中。
POI库是一个用于操作Microsoft Office格式文件的Java API。它可以读取、写入和编辑Excel、Word和PowerPoint等Microsoft Office文档。通过POI库,我们可以轻松地操作Excel文件,并将其中的数据快速导入到数据库中。
一、准备工作
我们需要准备好以下开发环境:
– JDK 1.8 或以上版本;
– Eclipse 或其他Java集成开发环境(IDE);
– MySQL 数据库。
我们需要下载并导入 POI 库。在 Eclipse 中,我们可以通过如下步骤来导入 POI 库:
– 点击菜单栏中的“File”;
– 选择“Import”;
– 在“Import”窗口中选择“Maven”;
– 然后在“Maven”窗口中,选择“Existing Maven Projects”;
– 在“Import Maven Projects”窗口中,选择您解压缩的POI库路径。
二、代码实现
下面就是我们的核心代码实现部分。我们将首先创建一个名为“ExcelImporter”的Java类,然后编写读取Excel文件和导入数据到MySQL数据库的方法。
1. 创建ExcelImporter类
在Eclipse中,首先我们需要创建一个 Java 项目,在项目中创建一个 Java 类,命名为ExcelImporter。
package com.example.excelimporter;
public class ExcelImporter {
// 在这里编写读取Excel文件并导入数据到MySQL的方法
}
2. 导入必要的 Java 类库
为了实现读取Excel文件和连接到MySQL数据库,我们需要导入以下 Java 类库:
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
3. 创建读取 Excel 文件的方法
在我们的 ExcelImporter 类中,我们需要创建一个方法,用于读取 Excel 文件。该方法将返回一个包含 Excel 文件中所有数据的 Map 对象。
public Map readExcelFile (String fileName) {
Map data = new HashMap();
try {
FileInputStream fileInputStream = new FileInputStream(new File(fileName));
Workbook workbook = null;
if (fileName.toLowerCase().endsWith(“.xlsx”)) {
workbook = new XSSFWorkbook(fileInputStream);
} else if (fileName.toLowerCase().endsWith(“.xls”)) {
workbook = new HSSFWorkbook(fileInputStream);
}
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
String[] rowData = new String[row.getLastCellNum()];
for (int i = 0; i
if (row.getCell(i) != null) {
rowData[i] = row.getCell(i).toString();
}
}
data.put(row.getRowNum(), rowData);
}
workbook.close();
fileInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
在上述代码中,我们使用 POI 库和 Java IO 库读取 Excel 文件。我们根据文件扩展名判断文件的类型。如果是“.xlsx”格式的文件,则使用 XSSFWorkbook 类读取该文件;如果是“.xls”格式的文件,则使用 HSSFWorkbook 类读取该文件。
接下来,我们遍历 Excel 文件的每一行,并将每行数据存储到一个String类型的数组中。我们将该数组存储到名称为data的 Map 对象中,并返回该对象。
4. 创建数据库连接方法
在我们的 ExcelImporter 类中,我们还需要创建方法来连接 MySQL 数据库。这里我们使用 JDBA 进行数据库连接,并编写了一个名为 createConnection 的方法。
public Connection createConnection (String dbName){
Connection connection=null;
try {
Class.forName(“com.mysql.jdbc.Driver”);
String url=”jdbc:mysql://localhost:3306/”+dbName;
String userName=”root”;
String password=”yourpassword”;
connection=DriverManager.getConnection(url, userName, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
在上述代码中,我们首先使用 Class.forName() 方法加载 JDBC 驱动程序。然后,我们使用 DriverManager 类的 getConnection() 方法创建一个数据库连接对象,并将该对象返回。
5. 创建导入数据到 MySQL 数据库的方法
我们需要编写一个名为 importData 的方法,将 Excel 文件中的数据插入到 MySQL 数据库中。
public void importData (String fileName, String dbName, String tableName) {
Map map = readExcelFile(fileName);
Connection connection = createConnection(dbName);
try {
String sql = “INSERT INTO ” + tableName + ” VALUES (“;
for (int i = 0; i