2012-09-26 478 views
3

我一直在使用excel電子表格,到目前爲止,我從來沒有遇到過任何問題。但是,當我嘗試讀取excel文件時,這個錯誤「不是合法的OleAut日期」顯示出來。有誰知道我可以如何解決這個問題。這裏是我用來閱讀excel並將數據放入數據集的代碼。它以前運行良好,但在我對數據源進行了一些更改(不涉及日期)之後,出現此錯誤。如何解決「不是合法的OleAut日期。」在C#中讀取Excel文件時?

var fileName = string.Format("C:\\Drafts\\Excel 97-2003 formats\\All Data 09 26 2012_Edited.xls"); 
     var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName); 

     var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString); 

     DataSet Originalds = new DataSet(); 
     adapter.Fill(Originalds, "Employees"); // this is where the error shows up 
+2

您是否知道電子表格中的哪個字段會產生錯誤?如果是這樣,該領域包含什麼? – user1201210

+0

可能的重複:http://stackoverflow.com/questions/310700/meaning-of-exception-in-c-sharp-app-not-a-legal-oleaut-date –

+0

@CodeIgnoto它不是重複的! ..我首先看了這個問題。沒有任何建議和解決方案適用於我。 – Sophonias

回答

8

我有點解決了這個問題,我改變了連接字符串到最新的oleDB提供程序。

var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=YES;'", fileName); 

我也確保我的excel數據的最後一行之後的空白空間不被讀爲值。

+2

+1中的第一個或最後一個條目,以便返回向公衆報告! – Marcel

0

尋找不同的日期格式,在我的情況下,其中一列是dd/mm/yyyy格式,另一列是mm/dd/yyyy。一旦日期格式被糾正,數據導入就起作用了。

相關問題