傳統操做Excel方法在部署的時候遇到不少問題,如目標主機須要安裝Excel、64位電腦不支持、須要安裝相關驅動程序等。因此咱們通常會使用開源的NPOI來替代傳統的Excel操做方法,NPOI的優勢是隻需引入相關的庫就能夠在沒有安裝Office的狀況下對Word或Excel文檔進行讀寫操做。html
在處理Excel的過程當中可能會遇到各類各樣的數據格式的問題,好比日期格式問題,日期的格式能夠說是有各式各樣的,若是咱們不能正確處理可能會致使咱們導入以後得不到本身想要的值。apache
能夠從NPOI的cell中獲取CellStyle的DataFormat,經過判斷cell的數據類型決定要不要當作日期處理。api
if (cell.CellType == CellType.NUMERIC) { short format = cell.CellStyle.DataFormat; if (format == 0xe || format == 0x16) { DateTime date = cell.DateCellValue; dataRow[j] = date.ToString(); } else { dataRow[j] = cell.NumericCellValue; } }
下面是從官網扒來的cell類型匹配表:ui
0, "General"
1, "0"
2, "0.00"
3, "#,##0"
4, "#,##0.00"
5, "$#,##0_);($#,##0)"
6, "$#,##0_);[Red]($#,##0)"
7, "$#,##0.00);($#,##0.00)"
8, "$#,##0.00_);[Red]($#,##0.00)"
9, "0%"
0xa, "0.00%"
0xb, "0.00E+00"
0xc, "# ?/?"
0xd, "# ??/??"
0xe, "m/d/yy"
0xf, "d-mmm-yy"
0x10, "d-mmm"
0x11, "mmm-yy"
0x12, "h:mm AM/PM"
0x13, "h:mm:ss AM/PM"
0x14, "h:mm"
0x15, "h:mm:ss"
0x16, "m/d/yy h:mm"
// 0x17 - 0x24 reserved for international and undocumented 0x25, "#,##0_);(#,##0)"
0x26, "#,##0_);[Red](#,##0)"
0x27, "#,##0.00_);(#,##0.00)"
0x28, "#,##0.00_);[Red](#,##0.00)"
0x29, "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)"
0x2a, "_($* #,##0_);_($* (#,##0);_($* \"-\"_);_(@_)"
0x2b, "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)"
0x2c, "_($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);_(@_)"
0x2d, "mm:ss"
0x2e, "[h]:mm:ss"
0x2f, "mm:ss.0"
0x30, "##0.0E+0"
0x31, "@" - This is text format.
0x31 "text" - Alias for "@"
傳送門spa
轉載請註明出處:http://www.cnblogs.com/keitsi/p/8572093.htmlcode