Java Excel批量导入数据

简介

在日常的开发中,我们经常会遇到需要从Excel表格中批量导入数据的需求。Java提供了丰富的库和工具,可以帮助我们轻松地处理Excel文件。本文将介绍如何使用Java来批量导入Excel数据,并提供代码示例。

依赖库

为了操作Excel文件,我们需要引入一些依赖库。在本文中,我们将使用Apache POI库来读取和写入Excel文件。以下是在Maven项目中添加相关依赖的代码:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.2</version>
    </dependency>
</dependencies>

导入Excel数据

步骤一:读取Excel文件

首先,我们需要使用Workbook类来读取Excel文件。以下是读取Excel文件的代码示例:

import org.apache.poi.ss.usermodel.*;

public class ExcelReader {

    public static void main(String[] args) {
        try (Workbook workbook = WorkbookFactory.create(new File("data.xlsx"))) {
            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                for (Cell cell : row) {
                    switch (cell.getCellType()) {
                        case STRING:
                            System.out.print(cell.getStringCellValue() + "\t");
                            break;
                        case NUMERIC:
                            System.out.print(cell.getNumericCellValue() + "\t");
                            break;
                        case BOOLEAN:
                            System.out.print(cell.getBooleanCellValue() + "\t");
                            break;
                        default:
                            System.out.print("\t");
                            break;
                    }
                }
                System.out.println();
            }
        } catch (IOException | InvalidFormatException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们使用WorkbookFactory类的create方法来创建一个Workbook对象,并传入Excel文件的路径。然后,我们使用getSheetAt方法来获取第一个工作表。接下来,我们使用两个嵌套的循环来遍历所有的行和单元格,并根据单元格的类型来读取数据。

步骤二:处理Excel数据

一旦我们读取了Excel文件中的数据,我们可以根据需求进行进一步的处理。以下是一个简单的示例,展示如何将Excel中的数据存储到数据库中:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class DataImporter {

    public static void main(String[] args) {
        try (Workbook workbook = WorkbookFactory.create(new File("data.xlsx"))) {
            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                String name = row.getCell(0).getStringCellValue();
                int age = (int) row.getCell(1).getNumericCellValue();
                String email = row.getCell(2).getStringCellValue();

                // 将数据插入数据库
                insertData(name, age, email);
            }
        } catch (IOException | InvalidFormatException e) {
            e.printStackTrace();
        }
    }

    private static void insertData(String name, int age, String email) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";

        try (Connection conn = DriverManager.getConnection(url, username, password);
             PreparedStatement stmt = conn.prepareStatement("INSERT INTO users (name, age, email) VALUES (?, ?, ?)")) {
            stmt.setString(1, name);
            stmt.setInt(2, age);
            stmt.setString(3, email);
            stmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们使用了JDBC来连接数据库,并通过PreparedStatement对象执行插入数据的操作。

总结

通过使用Apache POI库,我们可以轻松地实现Java Excel批量导入数据的功能。本文提供了读取Excel文件和处理数据的示例代码,希望可以帮助读者理解如何在Java中操作Excel文件。

以上是本文的全部内容,希望对你有所帮助。

需要注意的是,本文中的代码示例仅供学习参考之用,实际使用时需要根据具体需求进行适当的修改和优化。