C 讀取EXCEL檔案出現資料丟失問題

2021-05-23 15:10:47 字數 1329 閱讀 8656

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 檔案,我們要新...