OleDb方式讀取excel,和現實不符

2022-02-16 17:04:27 字數 667 閱讀 3407

開始時候按照嚴格的excel模板來執行,資料都是嚴格要求的,可是到了客戶那裡,什麼花招都來了..也不使用指定的模板了...

導致乙個問題:  資料列格式不一致  比如一列 前面幾個全部是數字型別,中間穿插幾個以字元形式儲存的數字...   直接導致這些資料讀取為dbnull

怎麼解決...搜尋一下..發現這個是oledb的bug...不管你設定成imex =1 還是=2 , 他都不會讀取這些資料

最終解決方案... 使用interop,首先轉換成csv...然後讀取文字行 ,部分**拷貝自網路

if (directory.exists(temppath))

directory.createdirectory(temppath);

string filename = temppath + guid.newguid() + ".csv";

try//將資料填入資料表

int j = 0;

while ((line = sr.readline()) != null)

table.rows.add(row);

}sr.close();

//顯示資料

dgclass.datasource = table;

importnow.enabled = true;

}catch (exception ex)

C 讀取Excel(通過OleDb)

通過oledb連線,讀取excel。provider microsoft.jet.oledb.4.0 data source filenameurl extended properties excel 8.0 hdr yes imex 1 特別注意 extended properties excel...

Oledb的方式匯出Excel

連線字串 string connectionstring provider microsoft.jet.oledb.4.0 data source excel檔案路徑及檔案全名 extended properties excel 8.0 hdr yes imex 2 定義連線物件 oledbconn...

oledb讀取Excel資料丟失原因

產生這種問題的根源與excel isam 3 indexed sequential access method,即索引順序訪問方法 驅動程式的限制有關,excel isam 驅動程式通過檢查前幾行中實際值確定乙個 excel 列的型別,然後選擇能夠代表其樣本中大部分值的資料型別 4 也即excel ...