NPOI 读Excel 日期格式

转自:https://www.cnblogs.com/craigtao/p/6322172.html

 

如果直接使用下面的方式读取的时间格式,是一串数字

string unit = cell.ToString();

比如excel中的时间是 2017/1/20 10:20:21

上面的方式读取出来后是这样的格式: 1/20/17 10:20:21

 

突然想到,是不是可以判断是什么类型呢? 

糟糕,NPOI还没有提供判断是不是日期类型的,单步调试,发现日期类型也是 Numeric 的,

好在可以使用.net 自身提供的 DateUtil.IsCellDateFormatted 方法可以判断读取的单元值是否为日期类型

看代码:

复制代码
ICell cell = row.GetCell(i_cell);

if (cell.CellType == CellType.Numeric && DateUtil.IsCellDateFormatted(cell))
{
       unit = cell.DateCellValue.ToString();
}
else
{
       unit = cell.ToString();
}
复制代码

 

补充说明:通过DateUtil.IsCellDateFormatted方法可以判断单元格是否为日期格式,是日期格式则可以通过 cell.DateCellValue 获取单元格的日期值。然后可以方便地将其转换为想要的字符串格式。另外 DateUtil.IsCellDateFormatted 方法的参数如果是非 NUMERIC 会报错,所以调用前要确保CellType是否为 NUMERIC。

posted @ 2018-08-28 16:14  夕颜4948  阅读(845)  评论(0编辑  收藏  举报