c# 讀取excel檔案出現資料丟失問題
將excel資料匯出的時候如果同一列資料中既有文字,又有數字!讀取時一列中要麼文字丟失只剩下數字,要麼數字丟失,只剩下文字,這是由第一行的資料型別決定的。出現這種問題是由於資料型別不統一造成的。
原來的連線字串為:
string strconn = "provider=microsoft.jet.oledb.4.0;data source=" + path + "; extended properties=excel 8.0;";
查閱資料後問題解決:
string strconn = "provider=microsoft.jet.oledb.4.0;data source=" + path + ";extended properties=excel 8.0;imex=1;";
加的引數解釋:
imex=1 解決數字與字元混合時,識別不正常的情況
hdr=yes 有兩個值:yes/no,表示第一行是否欄位名,預設是yes,第一行是欄位名
oledb的excel的imex和hdr是什麼意思2010-01-23 13:24hdr=no 即無字段
hdr=yes 即有字段,一般預設excel表中第1行的列標題為欄位名,如姓名、年齡等
還有問題imex有三個值0,1,2,其他兩個值分別表示什麼
imex 表示是否強制轉換為文字
特別注意
extended properties='excel 8.0;hdr=yes;imex=1'
a: hdr ( header row )設定
若指定值為yes,代表 excel 檔中的工作表第一行是欄位名稱
若指定值為 no,代表 excel 檔中的工作表第一行就是資料了,沒有欄位名稱
b:imex ( import export mode )設定
imex 有三種模式,各自引起的讀寫行為也不同,容後再述:
0 is export mode
1 is import mode
2 is linked mode (full update capabilities)
我這裡特別要說明的就是 imex 引數了,因為不同的模式代表著不同的讀寫行為:
當 imex=0 時為「匯出模式」,這個模式開啟的 excel 檔案只能用來做「寫入」用途。
當 imex=1 時為「匯入模式」,這個模式開啟的 excel 檔案只能用來做「讀取」用途。
當 imex=2 時為「鏈結模式」,這個模式開啟的 excel 檔案可同時支援「讀取」與「寫入」用途。
意義如下:
0 ---輸出模式;
1---輸入模式;
2----鏈結模式(完全更新能力)
C 讀取EXCEL檔案出現資料丟失問題
將excel資料匯出的時候如果同一列資料中既有文字,又有數字!讀取時一列中要麼文字丟失只剩下數字,要麼數字丟失,只剩下文字,這是由第一行的資料型別決定的。出現這種問題是由於資料型別不統一造成的。原來的連線字串為 string strconn provider microsoft.jet.oledb....
C 讀取excel檔案資料丟失問題
當使用oledbdataadapter.fill填充資料到datatable時,資料行與excel行數不一致 修改oledbconnection配置連線字串 修改前 修改後 imex是用來告訴驅動程式使用excel檔案的模式,其值有0 1 2三種,分別代表匯出 匯入 混合模式。當我們設定imex 1...
讀取Excel檔案
閒話一下excel中工作簿和工作表的區別 工作簿中包含有工作表。工作簿可以由一張或多張工作表組成,乙個工作簿就是乙個excel 檔案。好了,開始讀取 檔案吧。前提 首先,我們假設需要讀取的 檔案名字為test.xls,位於assets根目錄下。所需jar包 這裡為了能讀取到excel 檔案,我們要新...