实现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

sql += “?”;

if (i

sql += “,”;

}

}

sql += “)”;

PreparedStatement statement = connection.prepareStatement(sql);

for (int key : map.keySet()) {

String[] rowData = map.get(key);

for (int i = 0; i

statement.setString(i + 1, rowData[i]);

}

statement.executeUpdate();

}

statement.close();

connection.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

在上述代码中,我们首先调用之前创建的“readExcelFile”方法,读取 Excel 文件中的数据并将其存储到名为map的 Map 对象中。

接下来,我们使用“createConnection”方法连接到 MySQL 数据库。然后,我们使用 PreparedStatement 对象根据 Excel 文件的数据编写 SQL 语句来将数据存到数据库中。我们在导入结束后关闭 PreparedStatement 和数据库连接。

三、使用介绍

现在,我们可以通过 ExcelImporter 类实现 Excel 数据的导入到 MySQL 数据库:

ExcelImporter excelImporter = new ExcelImporter();

excelImporter.importData(“data.xlsx”, “mydatabase”, “mytable”);

在这个示例中,我们首先创建一个 ExcelImporter 的实例。然后我们从名为“data.xlsx”的 Excel 文件中读取数据,并将其插入到名为“mytable”的 MySQL 表中。


数据运维技术 » 实现POI读取Excel并导入到数据库实例 (poi导入excel到数据库实例)