在以往讀取Excel文件時常常出現讀取某些字段為null值,其實是有值,原因是讀取文件時,Excel會以第一行的數據類型為參考,如果後邊的與其不一致,則會出現些問題。
以下一個朋友的解決方案,他的Excel文件的連接串寫作如下。據說可以強制數據為字符串,具體我沒有再測試。僅供參考。
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sPath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
其中紅色的部分比較值得注意,HDR和IMEX一定要配合使用,HDR表示要把第一行作為數據還是作為列名,作為數據用hdr=no,作為列名用hdr=yes;通過Imex=1來把混合型作為文本型讀取,避免null值。SSIS中的Excel Connection和其他的Connection不一樣,用戶不需要指定數據類型,Excel的driver可以先去做一個采樣,然後根據結果去猜一下數據類型。