ADO訪問excel

要用DELPHI中的ADO系列控件訪問Excel數據文件,首先應該建立一些基本概念。你需要將一個Excel數據文件想象爲一個關係數據庫,Excel文件中的每個工作表就對應該數據庫中的一個表,而工作表中的每一列當然就是表的列了。然後,按照下列面的祕訣進行就可以。
  
  1.設置ADOConnection的ConnectionString
  構造ConnectionString時,OLE DB的提供者要選擇Microsoft Jet 4.0 OLE DB Provider作爲ADO的驅動程序。這本來是用於連接Access數據庫的驅動程序,但也可打開Excel文件。
  連接的數據庫名稱當然就是你要打開的Excel文件,注意擴展名是*.xls,而不是*.mdb。
  最關鍵的一點是,還要設置擴展屬性Extended Properties爲“Excel 8.0”,否則,測試連接時會報告無法識別數據格式的錯誤。Extended Properties的屬性值在“所有”參數頁中輸入。
  最後,設置完成後的ConnectionString中的各項參數爲:
  Provider=Microsoft.Jet.OLEDB.4.0
  Data Source=MyExcelFile.xls
  Extended Properties=Excel 8.0
  Persist Security Info=False

  2.設置ADODataSet或ADOTable
  將ADODataSet或ADOTable連接到剛纔的ADOConnection。如果不用ADOConnection,也可以參照上面的方法直接設置ADODataSet或ADOTable的ConnectionString屬性。
  對於ADODataSet,需要將CommandType屬性設置爲cmdTableDirect,而對於ADOTable,則將TableDirect屬性設置爲True。因爲,訪問Excel文件是直接的數據文件訪問,不是通過SQL語句來操作遊標訪問的。如果不設置直接訪問,則系統會報告SQL語句格式錯誤等信息。
  然後,當你下拉ADODataSet中的CommandText屬性或ADOTable的TableName屬性時,就可以選擇到要打開的工作表了。注意,表名後面多了加一個$符號。
3.打開ADODataSet或ADOTable

 

利用ADOTable存取Excel文件  
1、添加ADOTable1控件,設置下列屬性:
ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Persist Security Info=false;Data Source=c:/abc.xls;
TableDirect=true;
TableName=sheet1$;
Active=true;
2、添加DataSource1控件,設置下列屬性:
DataSet=ADOTable1
3、添加DBGrid1控件,設置下列屬性:
DataSource=DataSource1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章