C# NPOI讀取excel日期格式的問題(2020-08-15 變成 12-5月-2020了)


如excel文件,

 

 DeliveryTime = currentRow.GetCell(dicData["需求日期"]).ToString()  讀取出來的字符串結果:“15-8月-2020”  ,讀取亂了。后期操作這個日期非常不方便

 

解決辦法:

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();
}

 

分析問題

導入時間格式問題分析 
之前整理的NPOI導入導出Excel 在之前使用過程中沒發現問題。
但是后來發現導入的文檔如果有日期時間格式,導入時會有混亂
后來找了一下解決方案,最終將其中一段修改即可導入日期(導出未測試) 
原因 
NPOI導入時會大概判斷一下Excel文檔里面的單元格是什么格式的內容,
有Blank,Boolean,Numeric,String,Error,Formula 等幾種,
但是就是沒有日期的,日期的單元格會被判斷成Numeric(數字)類型,
所以日期格式的單元格就按數字類型來取其中的值,
所以單元格被判斷成數字的之后還要再判斷一下是否為日期格式。

 

參考(感謝這位大神的總結)

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM