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。

猜你喜欢

转载自www.cnblogs.com/juneyss/p/9548931.html