我已經在我的應用程序中編寫了Excel導入過程。我用來導入的Excel電子表格是我使用我編寫的導出過程創建的所有文件。Excel通過DataGridView訪問導入不顯示所有日期
查看DataGridView
中的數據時,有一列顯示日期,該列顯示3行上的NULL
值。這3行的日期是相同的 - 15/02/2017。
起初我以爲這是因爲電子表格中的日期是NULL
,但它們不是。
經過Excel本身的一些調查後,我注意到列中的所有其他日期都設置爲'日期'類型,但這3個日期有問題的單元格設置爲'常規'。
但是,在我的導出程序中,我使用此代碼將此列中的單元格設置爲dd/MM/yyyy格式的日期。
Dim formatRange As Excel.Range
formatRange = xlWorksheet.Range("C1", "C9999")
formatRange.NumberFormat = "dd/MM/yyyy"
formatRange = xlWorksheet.Range("D1", "D9999")
formatRange.NumberFormat = "dd/MM/yyyy"
然後,只是作爲一個實驗,我改變了問題小區的類型爲「日期」,並試圖再次進口 - 但它仍然顯示NULL
細胞。
所以,我想我有兩個問題,真的;
- 爲什麼導出不是首先將這些單元格設置爲dd/MM/yyyy日期?這與價值觀有關嗎?
- 然後,即使在Excel中將類型更改爲「Date」後,爲什麼顯示爲
NULL
?
這是一個常見問題,還是有什麼我做錯了?
格式化Excel單元格爲'Date'類型是相當無意義的,因爲你仍然可以鍵入任何你想要的。由於沒有可用的代碼,所以我會仔細研究一下在excel中使用不良日期的可能性。 dd/MM/yyyy可能會與mm/dd/yyyy混在一起。只是猜測。 – JohnG
@JohnG我確實考慮過它是否會讓它與MM/dd/yyyy混淆,但旁邊的列顯示14/03/2017完美,所以這種理論揭穿了這種理論 – David
你有沒有考慮過格式化完全關閉?這應該顯示字符串,如果它爲null,那麼它最有可能與日期無關。 – JohnG