一起学习网 一起学习网

实现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 表中。

相关问题拓展阅读:

  • 怎样将Excel文件导入数据库(在P环境下Java代码)

怎样将Excel文件导入数据库(在P环境下Java代码)

呵呵,楼主既然思路都有了还怕写不出代码么?

你这个思路没有问题的!

可以把这个问题拆分成几个小问题,就简单多了。

之一是文件上传,可以参照Jakarta的FileUpload组件,其实也不一定要用这个,用普通的Post也就行了。

第二是Excel解析,用L或者POI都行

第三是数据保存,这个应该简单吧,一个循环,一行对应一条数据,写好了方法循环赋值调用就行了。

第四是查询和显示,这个更简单了,不用多说。

文件上传和Excel解析的例子网上很多的,改改就变自己的了,何必在这管别人要代码呢~

我只给你说下第二步怎么样吧,其他的你自己应该可以解决的。

通过使用第三方包jxl.jar,我以前导过数据,也是解析Excel,将Excel中的数据导入数据库中,这个包很好下,如果找不到可以留下邮箱

//程序说明: 要导入jxl.jar到Classpath中。

import jxl.*;

import java.io.*;

import jxl.write.*;

/**

* java读取Excel表格,拷贴心、更新Excel工作薄

*/

public class Test1 {

public static void main(String args) {

jxl.Workbook rwb = null;

try{

//构建Workbook对象 只读Workbook对象

//直接从本地文件创建Workbook

//从输入流创建Workbook

InputStream is = new FileInputStream(”

rwb = Workbook.getWorkbook(is);

//Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中

//Sheet的下标是从0开始的

//获取之一张Sheet表

Sheet rs = rwb.getSheet(0);

//获取Sheet表中所包含的总列数

int rsColumns = rs.getColumns();

//获取Sheet表中所包含的总行数

int rsRows = rs.getRows();

//获取指这下单元格的对象引用

for(int i=0;i

for(int j=0;j

Cell cell = rs.getCell(j,i);

System.out.print(cell.getContents()+” “);

}

System.out.println();

}

//利用已经创建的Excel工作薄创建新的可写入的Excel工作薄

jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(”

//读取之一张工作表

jxl.write.WritableSheet ws = wwb.getSheet(0);

//获取之一个单元格对象

jxl.write.WritableCell wc = ws.getWritableCell(0, 0);

//决断单元格的类型,做出相应的转化

if (wc.getType() == CellType.LABEL) {

Label l = (Label) wc;

l.setString(“The value has been modified.”);

}

//写入Excel对象

wwb.write();

wwb.close();

}catch(Exception e){

e.printStackTrace();

}

finally{

//操作完成时,关闭对象,翻译占用的内存空间

rwb.close();

}

}

}

利用poi组件读出excel文件内部及各单元格 再插入到表的相应字段中。我一直是这么做的。或者利用jxl组件。

poi导入excel到数据库实例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于poi导入excel到数据库实例,实现POI读取Excel并导入到数据库实例,怎样将Excel文件导入数据库(在P环境下Java代码)的信息别忘了在本站进行查找喔。