今天在Delphi7中使用AADOConnection 連接Excel


今天在Delphi中使用ADO連接Excel(以前在一本書看過,復習一下-_-!!),有所收獲,不敢獨享。第一部分:1. 設置ADOConnection的ConnectionString屬性的OLE DB的提供者要選擇Microsoft Jet 4.0 OLE DBProvider(這本來是用於連接Access數據庫的驅動程序,但也可打開Excel文件),按 "下一步"按鈕2. 選擇數據庫名稱。注意:Excel的擴展名是*.xls,而默認文件類型是Microsoft Access 數據庫(*.mdb),我們就選擇"全部文件(*.*)"吧,接着選擇我們要連接的Excel文件咯!!如果在當前路徑,就直接填2007.xls。 這時先別慌按 "測試連接"按鈕,不然會出現錯誤對話框的。可以試試看,了解一下 ^_^3. 在"所有"選項卡中找到 "Extended Properties",雙擊它或者按"編輯值"按鈕,設置Extended Properties為"Excel 8.0 "。4. 我們返回"連接"選項卡,按"測試連接"按鈕。測試連接成功!!!^_^最后,設置完成后的ConnectionString中的各項參數為:

//--2003及一下版本
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Extended Properties=Excel 8.0'
//--2007
'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s;Extended Properties= Excel 12.0;Persist Security Info=True';

%s表示文件的路徑

Persist Security Info=False第二部分:接着就用ADOTable,ADODataSet和ADOQuery連接到剛才的ADOConnection,當然你可以直接設置ADOTable,ADODataSet或ADOQuery的ConnectionString屬性。1. ADOTable設置:a. ADOTable的TableName屬性值:系統自動生成Excel的Sheet1$,Sheet2$和Sheet3$。直接Active設置成true,系統會報告SQL語句格式錯誤等信息。b. 找到TableDirect屬性,設置為True。因為,訪問Excel文件是直接的數據文件訪問,不是通過SQL語句來操作游標訪問的。接着將Active設置成true。成功了!! ^_^c. 可以不使用TableDirect屬性,將TableName屬性中的Sheet1$,Sheet2$和Sheet3$分別改成[Sheet1$],[Sheet2$]和[Sheet3$]。對,就是加"[]"就行了。2. ADODataSet設置:a. 只需要將CommandType屬性設置為cmdTableDirect,選擇工作表,Active設置成true就成功了。b. 也可以將CommandType屬性設置為cmdTable,將CommandText屬性中改成[Sheet1$],[Sheet2$]和[Sheet3$]。3. ADOQuery設置:SQL屬性如下:

 

select * from [sheet1$]總結:復習以前所學的,嘗試新的連接方法,有益於加深記憶。我發現工作表名后面都要多加一個$符號,還有就是打開ADOTable,ADODataSet或者ADOQuery以后,它們的CursorType自動變成ctStatic。 


獲取Excel版本

[delphi]
  1. const 
  2.   Wordversion97 = 8;  
  3.   Wordversion2000 = 9;  
  4.   WordversionXP = 10;  
  5.   Wordversion2003 = 11;  
  6.   Wordversion2007 = 12;  
  7. }   
  8.   
  9. function GetInstalledWordVersion: Integer;  
  10. var   
  11.   Excel: OLEVariant;  
  12. begin  
  13.   try  
  14.     Excel:=CreateOLEObject('Excel.Application');  
  15.   except  
  16.     ShowMessage('Error...');  
  17.     Exit;  
  18.   end;  
  19.   result := Excel.version;  
  20.   Excel.Quit;  
  21.   Excel := UnAssigned;  
  22. end;   

轉自:http://blog.csdn.net/love3s/article/details/6973761

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM