Excel日期导入Java

在日常开发中,我们经常需要将Excel中的日期数据导入到Java程序中进行处理。而Excel中的日期数据通常以特定的格式存储,如"yyyy-MM-dd"或"MM/dd/yyyy"等。本文将介绍如何使用Java将Excel中的日期数据导入并进行处理。

读取Excel文件

首先,我们需要使用Java提供的库来读取Excel文件。在本例中,我们将使用Apache POI库来进行Excel文件的读取。

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

public class ExcelReader {
    public static void main(String[] args) {
        try {
            Workbook workbook = new XSSFWorkbook("data.xlsx");
            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                for (Cell cell : row) {
                    if (cell.getCellType() == CellType.NUMERIC) {
                        if (DateUtil.isCellDateFormatted(cell)) {
                            System.out.println(cell.getDateCellValue());
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先打开名为"data.xlsx"的Excel文件。然后,我们获取第一个工作表(sheet)。接下来,我们遍历每一行和每一个单元格。如果单元格的数据类型为数字,并且可以被解析为日期格式,则输出该日期值。

处理日期数据

读取Excel中的日期数据后,我们可以在Java程序中对其进行处理。Java提供了java.time包来处理日期和时间数据。

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateUtils {
    public static void main(String[] args) {
        String dateString = "2022-01-01";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate date = LocalDate.parse(dateString, formatter);
        System.out.println(date);
    }
}

在上面的代码中,我们将字符串"2022-01-01"解析为LocalDate对象。首先,我们定义了一个日期格式化器(DateTimeFormatter),用于将字符串转换为日期对象。然后,我们使用parse方法将字符串解析为LocalDate对象。最后,我们输出解析后的日期对象。

将日期数据导入数据库

读取和处理Excel中的日期数据后,我们通常需要将其导入到数据库中。在这个例子中,我们使用MySQL数据库。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DatabaseImporter {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";

        try {
            Connection connection = DriverManager.getConnection(url, username, password);
            String sql = "INSERT INTO mytable (date_column) VALUES (?)";
            PreparedStatement statement = connection.prepareStatement(sql);

            String dateString = "2022-01-01";
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
            LocalDate date = LocalDate.parse(dateString, formatter);

            statement.setDate(1, java.sql.Date.valueOf(date));
            statement.executeUpdate();

            statement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先建立与MySQL数据库的连接。然后,我们定义了一个SQL插入语句,将日期数据插入到名为"mytable"的表中的"date_column"列。接下来,我们将字符串"2022-01-01"解析为LocalDate对象,然后使用java.sql.Date.valueOf方法将其转换为java.sql.Date对象。最后,我们执行插入操作并关闭连接。

结论

通过本文,我们了解了如何使用Java来导入Excel中的日期数据,并进行处理和存储。我们使用了Apache POI库来读取Excel文件,使用java.time包来处理日期数据,以及使用JDBC连接到MySQL数据库进行数据插入。希望这篇文章对你理解和应用Excel日期导入Java有所帮助。

参考链接:

  • [Apache POI官方文档](
  • [Java日期时间处理指南](
  • [MySQL官方文档](