讀取EXCEL檔案數字型別欄位為空的問題

2021-09-08 03:36:17 字數 1170 閱讀 1705

用microsoft.jet.oledb.4.0讀取excel資料的**是這樣的:

string connstr="provider=microsoft.jet.oledb.4.0;data source=c:/aa.xls;extended properties='excel 8.0;hdr=no;imex=1';";

oledbconnection conn=new oledbconnection(connstr);

conn.open();

string sql="select * from [sheet1$]";

oledbdataadapter da=new oledbdataadapter(sql,connstr);

dataset ds=new dataset();

da.fill(ds);

datagrid1.datasource=ds;

datagrid1.databind();

問題就出在連線字串上面,後面一定要加上extended properties='excel 8.0;hdr=no;imex=1'。

hdr=yes 有兩個值:yes/no,表示第一行是否欄位名,預設是yes,第一行是欄位名   

imex=1 解決數字與字元混合時,識別不正常的情況.

引數hdr的值:

hdr=yes,這代表第一行是標題,不做為資料使用 ,如果用hdr=no,則表示第一行不是標題,做為資料來使用。系統預設的是yes

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----鏈結模式(完全更新能力)

讀取EXCEL檔案數字型別欄位為空的問題

用microsoft.jet.oledb.4.0讀取excel資料的 是這樣的 string connstr provider microsoft.jet.oledb.4.0 data source c aa.xls extended properties excel 8.0 hdr no imex...

poi讀取Excel檔案,數字的處理問題

poi讀取excel檔案時,長一點的數字自動變成了科學計數法,短的數字自動加上了 0 一開始不知道有這個問題,測試了下才發現這個問題,也試了好多辦法去解決,今天發現個完美解決的辦法。numberformat nf numberformat.getinstance hssfcell num hssfr...

Excel 檔案資料讀取和篩選

需求 已知乙個excel 表中的 sheet1 中,有id,name,salary 3列的內容,要求將薪水重複次數最多的按從高到低進行排序 coding utf 8 import xlrd from collections import counter import operator file r ...