首页 运维百科文章正文

java读取excel文件并导入数据库

运维百科 2025年11月21日 06:28 238 admin

Java读取Excel文件并导入数据库的详细指南

在数据处理和分析领域,经常需要将Excel文件中的数据导入到数据库中,本文将详细介绍如何使用Java读取Excel文件并将其数据导入到数据库中。

java读取excel文件并导入数据库

我们需要使用Apache POI库来读取Excel文件,Apache POI是一个开源的Java库,可以处理Microsoft Office格式的文件,包括Excel、Word等,我们可以通过Maven或者直接下载jar包的方式引入Apache POI库。

我们需要创建一个Java类来读取Excel文件,我们可以使用Apache POI提供的Workbook接口来表示一个Excel工作簿,Sheet接口来表示一个工作表,Row接口来表示一行,Cell接口来表示一个单元格,通过这些接口,我们可以遍历整个Excel文件,并将每个单元格的值读取出来。

我们需要将读取到的数据存储到一个List<Map<String, Object>>对象中,这个对象可以看作是一个二维数组,每一行对应一个Map对象,每一列对应一个键值对,这样我们就可以方便地将数据插入到数据库中。

我们需要编写SQL语句将数据插入到数据库中,我们可以使用JDBC(Java Database Connectivity)来实现这一功能,我们需要加载数据库驱动,然后创建数据库连接,接着创建一个Statement对象,最后执行SQL语句。

java读取excel文件并导入数据库

下面是一个完整的示例代码:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.sql.*;
import java.util.*;
public class ExcelToDatabase {
    public static void main(String[] args) {
        String filePath = "path/to/your/excel/file.xlsx";
        String jdbcUrl = "jdbc:mysql://localhost:3306/your_database";
        String username = "your_username";
        String password = "your_password";
        try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
             FileInputStream fis = new FileInputStream(filePath)) {
            Workbook workbook = new XSSFWorkbook(fis);
            Sheet sheet = workbook.getSheetAt(0);
            List<Map<String, Object>> data = new ArrayList<>();
            for (Row row : sheet) {
                Map<String, Object> rowData = new HashMap<>();
                for (Cell cell : row) {
                    switch (cell.getCellType()) {
                        case STRING:
                            rowData.put("column" + cell.getColumnIndex(), cell.getStringCellValue());
                            break;
                        case NUMERIC:
                            rowData.put("column" + cell.getColumnIndex(), cell.getNumericCellValue());
                            break;
                        case BOOLEAN:
                            rowData.put("column" + cell.getColumnIndex(), cell.getBooleanCellValue());
                            break;
                        default:
                            rowData.put("column" + cell.getColumnIndex(), null);
                            break;
                    }
                }
                data.add(rowData);
            }
            for (Map<String, Object> rowData : data) {
                String insertSQL = "INSERT INTO your_table_name (column1, column2, column3) VALUES (?, ?, ?)";
                try (PreparedStatement statement = connection.prepareStatement(insertSQL)) {
                    statement.setString(1, (String) rowData.get("column1"));
                    statement.setDouble(2, (Double) rowData.get("column2"));
                    statement.setBoolean(3, (Boolean) rowData.get("column3"));
                    statement.executeUpdate();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们首先读取了一个Excel文件,并将其内容存储到一个List<Map<String, Object>>对象中,我们使用JDBC将数据插入到数据库中。

标签: Java

发表评论

丫丫技术百科 备案号:新ICP备2024010732号-62