首页 运维百科文章正文

如何用java读取excel文件写到数据库中

运维百科 2025年11月21日 06:57 240 admin

Java读取Excel文件并写入数据库的详细步骤解析

在当今信息化时代,数据是企业决策的重要依据,Excel作为一种广泛使用的数据存储格式,常常需要被导入到数据库中进行进一步的处理和分析,本文将详细介绍如何使用Java编程语言读取Excel文件,并将其中的数据写入数据库,这一过程涉及到Apache POI库用于处理Excel文件,以及JDBC用于连接和操作数据库。

引入所需库

为了完成这项任务,首先需要在项目中引入Apache POI库来处理Excel文件,以及一个适合的JDBC驱动来连接数据库,这些库可以通过Maven或Gradle等构建工具添加到项目中。

如何用java读取excel文件写到数据库中

读取Excel文件

使用Apache POI库中的API可以很方便地读取Excel文件,这里我们以最常见的.xlsx格式为例,介绍如何读取Excel文件中的数据。

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.util.Iterator;
public class ExcelReader {
    public static List<List<String>> readExcel(String filePath) throws Exception {
        FileInputStream fis = new FileInputStream(filePath);
        Workbook workbook = new XSSFWorkbook(fis);
        Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
        Iterator<Row> rowIterator = sheet.iterator();
        List<List<String>> data = new ArrayList<>();
        while (rowIterator.hasNext()) {
            Row row = rowIterator.next();
            List<String> cellData = new ArrayList<>();
            Iterator<Cell> cellIterator = row.cellIterator();
            while (cellIterator.hasNext()) {
                Cell cell = cellIterator.next();
                cellData.add(getCellValue(cell));
            }
            data.add(cellData);
        }
        workbook.close();
        return data;
    }
    private static String getCellValue(Cell cell) {
        switch (cell.getCellType()) {
            case STRING:
                return cell.getStringCellValue();
            case NUMERIC:
                if (DateUtil.isCellDateFormatted(cell)) {
                    return cell.getDateCellValue().toString();
                } else {
                    return Double.toString(cell.getNumericCellValue());
                }
            case BOOLEAN:
                return Boolean.toString(cell.getBooleanCellValue());
            case FORMULA:
                return cell.getCellFormula();
            default:
                return "";
        }
    }
}

连接到数据库并写入数据

我们需要使用JDBC连接到数据库,并将从Excel文件中读取的数据写入数据库,这里我们以MySQL数据库为例进行说明。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
public class DatabaseWriter {
    private static final String URL = "jdbc:mysql://localhost:3306/yourdatabase";
    private static final String USER = "root";
    private static final String PASSWORD = "password";
    public static void writeToDatabase(List<List<String>> data, String tableName) throws SQLException {
        String sql = "INSERT INTO " + tableName + " (column1, column2, column3) VALUES (?, ?, ?)";
        try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
            for (List<String> row : data) {
                pstmt.setString(1, row.get(0));
                pstmt.setString(2, row.get(1));
                pstmt.setString(3, row.get(2)); // 根据实际列数调整参数位置
                pstmt.executeUpdate();
            }
        }
    }
}

整合流程

我们需要将读取Excel文件和写入数据库的逻辑整合到一个方法中,以便执行整个流程。

如何用java读取excel文件写到数据库中

public static void main(String[] args) {
    try {
        List<List<String>> data = ExcelReader.readExcel("path_to_excel_file.xlsx");
        DatabaseWriter.writeToDatabase(data, "target_table");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

通过以上步骤,我们可以成功地将Excel文件中的数据读取出来,并写入到数据库中,这个过程虽然涉及到多个技术点,但只要按照步骤逐一实现,就能够顺利完成,希望这篇文章对您有所帮助!

标签: va

发表评论

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