2017-02-14 67 views
0

我想通過此連接字符串從Excel(xls)文件讀取數據,但某些數據在特定列下丟失。OleDb Excel缺少混合數據類型的數據

連接字符串在下面;

 props["Provider"] = "Microsoft.ACE.OLEDB.12.0;"; 
     props["Extended Properties"] = "\"Excel 12.0;HDR=YES;IMEX=1;ImportMixedTypes=Text\""; 
     props["Data Source"] = path; 

我的Excel數據的都是這樣的,缺失數據的正在列「G」,因爲在第二行中的日期值的..

enter image description here

我什麼都試過OleDB & mixed Excel datatypes : missing data下,但沒有奏效。 。

Thx!

回答

0

ACE.OLEDB驅動程序使用註冊表設置來確定每列的數據類型。默認情況下,要檢查和猜測列的類型的行數設置爲。

您的日期值完全符合第一個單元格塊。因此,很可能ACE會嘗試將G列中的其餘行作爲日期讀取。

這裏是你可以做什麼:

  1. 刪除G中列(可能是你的要求不允許)的日期值。
  2. 強制Excel將您的07.11.2016日期值作爲文本對待,而不應用任何自動格式。要在單元格中使用單引號字符'預設日期值,或手動將日期的單元格數據類型設置爲「通過單元格屬性設置文本」。然後再嘗試閱讀。

HTH

+0

第二個建議解決我的問題,但是,我不能要求用戶單引號添加到該小區。我需要的技術解決方案(代碼或配置)。 – bakin

+0

@bakin你有控制空白的.xlsx模板,然後填充數據?如果是,則可以通過右鍵單擊然後格式化單元格...並在數字選項卡中選擇文本,將G列中的所有第一個單元格預先格式化爲文本。然後,當用戶在那裏輸入日期時,這些日期應該保存爲文本。嘗試使用這種方案閱讀你的xls。 – andrews