C# NPOI读取excel日期格式的问题(2020-08-15 变成 12-5月-2020了)

1,如excel文件:问题如下

 问题:DeliveryTime = currentRow.GetCell(dicData["需求日期"]).ToString()  读取出来的字符串结果:“15-8月-2020”  ,读取乱了。后期操作这个日期非常不方便

2,解决办法:

string strDeliveryTime = null;
if (currentRow.GetCell(dicData["需求日期"]).CellType == CellType.Numeric)
{
strDeliveryTime = Convert.ToDateTime(currentRow.GetCell(dicData["需求日期"]).DateCellValue)
.ToString("yyyy-MM-dd");
}
else
{
strDeliveryTime = currentRow.GetCell(dicData["需求日期"]).ToString();
}

3,分析问题:

导入时间格式问题分析 
之前整理的NPOI导入导出Excel 在之前使用过程中没发现问题。
但是后来发现导入的文档如果有日期时间格式,导入时会有混乱
后来找了一下解决方案,最终将其中一段修改即可导入日期(导出未测试) 
原因 
NPOI导入时会大概判断一下Excel文档里面的单元格是什么格式的内容,
有Blank,Boolean,Numeric,String,Error,Formula 等几种,
但是就是没有日期的,日期的单元格会被判断成Numeric(数字)类型,
所以日期格式的单元格就按数字类型来取其中的值,
所以单元格被判断成数字的之后还要再判断一下是否为日期格式。

参考(感谢这位大神的总结)

http://www.luofenming.com/show.aspx?id=ART2017122700001

 

原文地址:https://www.cnblogs.com/baozi789654/p/13127339.html