?? 在delphi中使用ado直接訪問(wèn)excel數(shù)據(jù)文件 .txt
字號(hào):
在DELPHI中使用ADO直接訪問(wèn)Excel數(shù)據(jù)文件
李戰(zhàn)
摘 要:在DELPHI中使用ADO直接訪問(wèn)Excel數(shù)據(jù)文件
關(guān)鍵字:ADO Excel
類 別:數(shù)據(jù)庫(kù)
承蒙各位大魚(yú)大蝦的支持,終于頓悟。現(xiàn)在將心經(jīng)寫下來(lái),讓后來(lái)者提高修成正果的效率,早日成
為大魚(yú)大蝦。
要用DELPHI中的ADO系列控件訪問(wèn)Excel數(shù)據(jù)文件,首先應(yīng)該建立一些基本概念。你需要將一個(gè)Excel
數(shù)據(jù)文件想象為一個(gè)關(guān)系數(shù)據(jù)庫(kù),Excel文件中的每個(gè)工作表就對(duì)應(yīng)該數(shù)據(jù)庫(kù)中的一個(gè)表,而工作表中的
每一列當(dāng)然就是表的列了。然后,按照下列面的秘訣進(jìn)行就可以。
1.設(shè)置ADOConnection的ConnectionString
構(gòu)造ConnectionString時(shí),OLE DB的提供者要選擇Microsoft Jet 4.0 OLE DB Provider作為ADO的
驅(qū)動(dòng)程序。這本來(lái)是用于連接Access數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序,但也可打開(kāi)Excel文件。
連接的數(shù)據(jù)庫(kù)名稱當(dāng)然就是你要打開(kāi)的Excel文件,注意擴(kuò)展名是*.xls,而不是*.mdb。
最關(guān)鍵的一點(diǎn)是,還要設(shè)置擴(kuò)展屬性Extended Properties為“Excel 8.0”,否則,測(cè)試連接時(shí)會(huì)
報(bào)告無(wú)法識(shí)別數(shù)據(jù)格式的錯(cuò)誤。Extended Properties的屬性值在“所有”參數(shù)頁(yè)中輸入。
最后,設(shè)置完成后的ConnectionString中的各項(xiàng)參數(shù)為:
Provider=Microsoft.Jet.OLEDB.4.0
Data Source=MyExcelFile.xls
Extended Properties=Excel 8.0
Persist Security Info=False
2.設(shè)置ADODataSet或ADOTable
將ADODataSet或ADOTable連接到剛才的ADOConnection。如果不用ADOConnection,也可以參照上面
的方法直接設(shè)置ADODataSet或ADOTable的ConnectionString屬性。
對(duì)于ADODataSet,需要將CommandType屬性設(shè)置為cmdTableDirect,而對(duì)于ADOTable,則將
TableDirect屬性設(shè)置為True。因?yàn)椋L問(wèn)Excel文件是直接的數(shù)據(jù)文件訪問(wèn),不是通過(guò)SQL語(yǔ)句來(lái)操作游
標(biāo)訪問(wèn)的。如果不設(shè)置直接訪問(wèn),則系統(tǒng)會(huì)報(bào)告SQL語(yǔ)句格式錯(cuò)誤等信息。
然后,當(dāng)你下拉ADODataSet中的CommandText屬性或ADOTable的TableName屬性時(shí),就可以選擇到要
打開(kāi)的工作表了。注意,表名后面多了加一個(gè)$符號(hào)。
3.打開(kāi)ADODataSet或ADOTable
投稿人:李戰(zhàn) 投稿日期:2002-3-8 21:23:00
我用上面的方法連接,并且成功。但是運(yùn)行失敗,提示“Microsoft Jet 數(shù)據(jù)引擎打不開(kāi)。
他已經(jīng)被別的擁護(hù)以獨(dú)占的方式打開(kāi),或沒(méi)有查看數(shù)據(jù)的權(quán)限。”
如果我用Microsoft EXCEL打開(kāi)那個(gè)文件后就可以運(yùn)行成功。為什么??我的操作系統(tǒng)是winXP,用Excel2000。
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -