讀取excel數據 到 datagrid 出現:找不到可安裝的ISAM 錯誤:
實在沒有辦法了 就仔細的查看了 一下數據鏈接字符串:
string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Dir + "\\"+fileName + ";Extended Properties=Excel 8.0;HDR=Yes;IMEX=1;";
有對照了http://www.connectionstrings.com/ 上的實例發現字符串寫法錯誤;漏了分號。
改為:
string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Dir + "\\"+fileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; 就ok了
EXCEL導入時,同一列中有數據和字符類型,出現導漏數據問題
這個是數據庫驅動的原因造成的,你可以在數據庫連接字符串中加上"IMEX=1",如:strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + Path + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";
說明:HDR=表示數據有無標題行(yes/no),IMEX=1通知驅動程序始終將“互混”數據列作為文本讀取,在這里需要清楚的是,系統在判斷該字段(列)到底是數值還是文本時,是通過該列的前8條記錄是否有文本數據,有則該列作為文本讀取,否則,即使后面的記錄有文本,也還是按數值讀取(導致文本為空)。
修改“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel”下的TypeGuessRows注冊表值,可以將其改大些,如1000,這樣在1000條記錄前只要有文本,就不會出現文本為空的現象,具體情況要視你的數據而定。