Java POI读取Excel文件日期

在Java开发中,我们经常需要读取Excel文件中的数据进行处理。而Apache POI是一个流行的Java库,可以用来读取和写入Microsoft Office格式的文件,包括Excel文件。本文将介绍如何使用Java POI库读取Excel文件中的日期数据,并提供代码示例。

准备工作

首先,我们需要在项目中引入Apache POI库的依赖。在Maven项目中,可以添加以下依赖到pom.xml文件中:

<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>

这样,我们就可以在代码中使用Apache POI库了。

读取Excel文件中的日期

接下来,我们将演示如何使用Java POI库读取Excel文件中的日期数据。

首先,我们需要创建一个Workbook对象,它代表整个Excel文件。然后,通过Workbook对象获取到第一个Sheet,并创建一个DataFormatter对象,用于格式化日期数据。

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

import java.io.FileInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;

public class ExcelReader {
    public static void main(String[] args) {
        String fileName = "path/to/excel/file.xlsx";
        try (FileInputStream fis = new FileInputStream(fileName);
             Workbook workbook = new XSSFWorkbook(fis)) {

            Sheet sheet = workbook.getSheetAt(0);
            DataFormatter dataFormatter = new DataFormatter();

            for (Row row : sheet) {
                for (Cell cell : row) {
                    String cellValue = dataFormatter.formatCellValue(cell);

                    if (cell.getCellType() == CellType.NUMERIC && DateUtil.isCellDateFormatted(cell)) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        String formattedDate = dateFormat.format(cell.getDateCellValue());
                        System.out.println(formattedDate);
                    } else {
                        System.out.println(cellValue);
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,我们首先通过FileInputStream读取Excel文件。然后,创建一个XSSFWorkbook对象,它代表一个Excel文件。接着,我们获取到第一个Sheet,并创建一个DataFormatter对象,用于格式化日期数据。

接下来,我们使用嵌套的循环遍历Sheet中的每一个单元格,并使用DataFormatter对象格式化单元格的值。如果单元格的类型是数字且是日期格式,我们使用SimpleDateFormat将日期格式化为"yyyy-MM-dd"的字符串,并打印出来。否则,直接打印单元格的值。

总结

通过使用Java POI库,我们可以方便地读取Excel文件中的日期数据。在本文中,我们介绍了如何使用Java POI库读取Excel文件中的日期,并提供了相应的代码示例。希望本文对你有所帮助。

附录

饼状图

下面是一个用mermaid语法表示的饼状图的示例:

pie
    title Pie Chart
    "Apple" : 45
    "Banana" : 30
    "Orange" : 25

序列图

下面是一个用mermaid语法表示的序列图的示例:

sequenceDiagram
    participant A
    participant B

    A->>B: 请求数据
    B->>B: 处理数据
    B->>A: 返回结果

以上是关于Java POI读取Excel文件日期的科普文章内容和示例代码。希望对你有所帮助!