Chr*_*Rea 5 java excel time date apache-poi
我需要检测单元格格式是日期、时间还是日期时间。
我的代码是:
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
if (DateUtil.isCellDateFormatted(cell)) {
if ( ??? )
return "Time";
else if ( ??? )
return "Date";
else
return "Datetime";
}
}
Run Code Online (Sandbox Code Playgroud)
我使用 ApachePOI 3.6
我在 POI 中没有看到可以轻松完成此操作的内置方法。首先,“时间”、“日期”和“日期时间”之间似乎没有明确的区别。这些值仅存储为数字,并应用某种格式来显示它。
您可以做的一件事是获取单元格 ( HSSFCellStyle) 的样式,然后编写自己的方法,该方法读取 或style.getDataFormatString()并style.getDataFormat()告诉您该格式是否属于“时间”、“日期”或“日期时间”类别,具体取决于您的方式定义它们。第二种方法返回一个,int因此它可能更容易使用。
例如,下面突出显示的格式的字符串数据格式为“[$-F400]h:mm:ss\ AM/PM”,值为int166。

我假设这就是您所说的“日期时间”格式,因为它是 Excel 的内置格式之一,可显示日期和时间。
这种方法的缺点是我不希望它适用于具有自定义日期/时间格式的单元格。
| 归档时间: |
|
| 查看次数: |
6432 次 |
| 最近记录: |