首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我正在使用Apache POI读取excel文件。无法读取日期。在excel中,日期格式2017-03-15 6:00(单元格format=custom) &使用poi,读数为42809.25

Apache POI是一个用于操作Microsoft Office格式文件的Java库。它提供了一组API,可以读取、写入和操作Excel、Word和PowerPoint文件。

在使用Apache POI读取Excel文件时,遇到无法读取日期的问题,可能是因为日期在Excel中以数字形式存储,而不是以常见的日期格式显示。在Excel中,日期被存储为自1900年1月1日以来的天数。因此,42809.25实际上代表了2017年3月15日的日期和时间。

要正确读取日期,可以使用Apache POI提供的日期格式化工具类来将数字转换为日期格式。以下是一个示例代码:

代码语言:txt
复制
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;
import java.util.Date;

public class ExcelReader {
    public static void main(String[] args) {
        try {
            FileInputStream file = new FileInputStream("path/to/your/excel/file.xlsx");
            Workbook workbook = new XSSFWorkbook(file);
            Sheet sheet = workbook.getSheetAt(0);
            Row row = sheet.getRow(0);
            Cell cell = row.getCell(0);

            if (cell.getCellType() == CellType.NUMERIC) {
                double numericValue = cell.getNumericCellValue();
                Date date = DateUtil.getJavaDate(numericValue);
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                String formattedDate = dateFormat.format(date);
                System.out.println("Formatted Date: " + formattedDate);
            }
            
            workbook.close();
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例代码中,我们首先打开Excel文件,然后获取第一个工作表、第一行和第一个单元格。然后,我们检查单元格的类型是否为数字类型。如果是数字类型,我们使用DateUtil.getJavaDate()方法将数字转换为Java的Date对象。最后,我们使用SimpleDateFormat类将日期格式化为"yyyy-MM-dd HH:mm"的字符串形式。

这样,你就可以正确地读取Excel中的日期数据了。

腾讯云提供了一系列与云计算相关的产品和服务,包括云服务器、云数据库、云存储、人工智能等。你可以根据具体需求选择适合的产品。以下是一些腾讯云产品的介绍链接:

请注意,以上链接仅供参考,具体选择产品时应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券