C#讀取Excel遇到無(wú)法讀取的解決方法
C#讀取Excel問(wèn)題的發(fā)現(xiàn):因?yàn)閷懥艘粋€(gè)根據(jù)Excel數(shù)據(jù)字典生成SQL腳本的工具,開(kāi)發(fā)過(guò)程中遇到一些小問(wèn)題。
無(wú)法讀取Excel中的數(shù)據(jù)單元格。有數(shù)據(jù),但是讀出來(lái)全是空值。
C#讀取Excel遇到無(wú)法讀取的解決方法:
1.在導(dǎo)入數(shù)據(jù)連接字符串中,將IMEX=1加入,“Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\Data.xls";Extended Properties="Excel 8.0;HDR=Yes;IMEX=1; ”,這樣就可以。
C#讀取Excel需要注意的:
IMEX=1:混合模式
HDR=Yes; 是否讓***行作為列頭
兩者必須一起使用。
本以為這樣就OK了。但在實(shí)際使用過(guò)程中,這樣設(shè)置還是不行,查閱了不少資料才發(fā)現(xiàn),原來(lái)還有一個(gè)注冊(cè)表里的信息需要修改,這樣帶能讓excel不再使用前8行的內(nèi)容來(lái)確定該列的類型。
C#讀取Excel之注冊(cè)表修改內(nèi)容如下:
在HKLM\Software\Microsoft\Jet\4.0\Engines\Excel有一個(gè)TypeGuessRows值,預(yù)設(shè)是8,表示會(huì)先讀取前8列來(lái)決定每一個(gè)欄位的型態(tài),所以如果前8列的資料都是數(shù)字,到了第9列以后出現(xiàn)的文字資料都會(huì)變成null,所以如果要解決這個(gè)問(wèn)題,只要把TypeGuessRows機(jī)碼值改成0,就可以解這個(gè)問(wèn)題了!
C#讀取Excel遇到無(wú)法讀取的解決方法的相關(guān)內(nèi)容就向你介紹到這里,希望對(duì)你學(xué)習(xí)C#讀取Excel有所幫助。
【編輯推薦】