gpt4 book ai didi

java - Apache POI 时间单元

转载 作者:行者123 更新时间:2023-12-02 06:07:07 26 4
gpt4 key购买 nike

我需要检测单元格格式是否为日期、时间或日期时间。
我的代码是:

        if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
if (DateUtil.isCellDateFormatted(cell)) {
if ( ??? )
return "Time";
else if ( ??? )
return "Date";
else
return "Datetime";
}
}

我使用 ApachePOI 3.6

最佳答案

我在 POI 中没有看到可以轻松执行此操作的内置方法。首先,“时间”、“日期”和“日期时间”之间似乎没有明确的区别。这些值仅存储为数字,并应用格式来显示它。

您可以做的一件事是获取单元格的样式 (HSSFCellStyle),然后编写自己的方法来读取 style.getDataFormatString() style.getDataFormat() 并告诉您该格式是否属于“时间”、“日期”或“日期时间”类别,具体取决于您如何定义它们。第二种方法返回一个 int 因此它可能更容易使用。

例如,下面突出显示的格式的字符串数据格式为“[$-F400]h:mm:ss\AM/PM”,int 值为 166。

Excel Date/Time Format

我假设这就是您所说的“日期时间”格式,因为它是 Excel 的内置格式之一,可显示日期和时间。

这种方法的缺点是我不希望它适用于具有自定义日期/时间格式的单元格。

关于java - Apache POI 时间单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3014803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com