成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全面簡述VB.NET excel對象原理

開發 后端
文章主要介紹了VB.NET excel對象,簡單說明EXCEL的對象模型,Excel對象的使用,Application對象和實例簡介,希望可以給你們帶來幫助。

用過VB的程序設計人員都知道,要想用VB輸出復雜的表格來,是十分困難的。能不能用VB.NET excel對象呢?最近筆者為單位開發“土工試驗數據整理”的某個模塊時,涉及到復雜數據表格的輸出問題,經過筆者的摸索,用VB調用EXCEL,取得了很好的效果。本文從編程實踐的角度對使用VB控制EXCEL的技術作簡要說明。

1. EXCEL的對象模型

如果一個應用程序支持自動化技術,那么其它的應用就可以通過其暴露的對象,對它進行控制,控制程序稱為客戶機,而被控制的一方就稱為服務器,被控制的對象就是Active對象。VB正是通過EXCEL顯露的各級對象來控制EXCEL工作的。每個對象都有各自的方法和屬性,通過方法可以實現對對象的控制,而屬性則可以改變對象的各種狀態。

理解EXCEL的對象模型是對其編程的基礎。EXCEL是以層次結構組織對象的,其對象模型中含有許多不同的對象元素,這些對象元素就是VB.NET excel對象可以操縱的。在EXCEL對象的層次結構中,最頂層是Application對象,是Excel本身。從該對象開始往下依次是:

  1. .workbooks對象集,是Application對象的下層,其指的是Excel的工作簿文件。  
  2. .worksheets對象集,是Workbooks對象集的下層,它表示的是Excel的一個工作表。  
  3. .Cells和Range對象,它們是worksheets對象的下層,它則指向Excel工作表中的一個或多個單元格。   

以上介紹的四個對象是VB.NET excel對象中最重要也是用得最多的對象,而且從上面的介紹中也不難看出,要控制Excel中的某個具體對象,如某個工作簿中某一表格中的單元格,就必須從Excel層次結構對象的最上層即Application對象開始遍歷。

2 .Excel對象的使用

application對象的使用

如前所述,Application對象位于Excel層次結構對象的最上層,它代表的是Excel自身,我們的應用程序理應從Application對象的建立開始。VB控制Excel的啟動方式有幾種,在這里我們使用了API調用,可以確保目前系統中只有一個Excel副本在運行,程序代碼和說明如下:

  1. Option Explicit  
  2. Public xlapp As Object‘Excel對象  
  3. Public xlbook As Object‘工作簿  
  4. Public xlsheet As Object‘工作表  
  5. Declare Function FindWindow Lib "user32" Alias _  
  6. "FindWindowA" (ByVal lpClassName As String, _  
  7. ByVal lpWindowName As Long) As Long  
  8. Declare Function SendMessage Lib "user32" Alias "SendMessageA" _  
  9. (ByVal hwnd As long,ByVal wMsg As Long, ByVal wParam As Long, lParam_   
  10. As Any) As_  Long  

以上是公有變量和API函數應在模塊中聲明。

  1. Sub GetExcel()  
  2. Dim MyXL As Object  '用于存放Microsoft Excel 引用的變量。  
  3. Dim ExcelWasNotRunning As Boolean '用于最后釋放的標記。  
  4. On Error Resume Next  '延遲錯誤捕獲。  
  5. '不帶第一個參數調用 Getobject 函數將返回對該應用程序的實例的引用。  
  6. '如果該應用程序不在運行,則會產生錯誤。  
  7. Set MyXL = GetObject(, "Excel.Application")  
  8. If Err.Number <> 0 Then ExcelWasNotRunning = True 
  9. Err.Clear '如果發生錯誤則要清除 Err 對象。  
  10. '檢測 Microsoft Excel。如果 Microsoft Excel 在運行,則將其加入運行對象表。  
  11. DetectExcel'該過程檢測并登記正在運行的 Excel  
  12. '設置其 Application 屬性,顯示 Microsoft Excel。  
  13. '然后使用 MyXL 對象引用的 Windows 集合,顯示包含該文件的實際窗口。  
  14. MyXL.Application.Visible = True 
  15. MyXL.Parent.Windows(1).Visible = True 
  16. '如果在啟動時,Microsoft Excel 的這份副本不在運行中,  
  17. '則使用 Application 屬性的 Quit 方法來關閉它。  
  18. '注意,當試圖退出 Microsoft Excel 時,  
  19. '標題欄會閃爍,并顯示一條消息詢問是否保存所加載的文件。  
  20. If ExcelWasNotRunning = True Then  
  21. MyXL.Application.Quit  
  22. End If  
  23. Set MyXL = Nothing  '釋放對該應用程序和電子數據表的引用。  
  24. End Sub  
  25. '該過程檢測并登記正在運行的 Excel。  
  26. Sub DetectExcel()  
  27. Const WM_USER = 1024 
  28. Dim hwnd As Long  
  29. '如果 Excel 在運行,則該 API 調用將返回其句柄。  
  30. hwnd = FindWindow("XLMAIN", 0)  
  31. If hwnd = 0 Then  '0 表示沒有 Excel 在運行。  
  32. Exit Sub  
  33. Else  
  34. 'Excel 在運行,因此可以使用 SendMessage API'函數將其放入運行對象表。  
  35. SendMessage hwnd, WM_USER + 18, 0, 0  
  36. End If  
  37. End Sub 

有了Application對象,就可以非常方便地訪問Excel應用程序中的其它對象,以及這此對象的屬性和方法。

【編輯推薦】

  1. 強化VB.NET Word文檔創建Document對象
  2. VB.NET Word對象模型兩大要點介紹
  3. 全方位VB.NET文件操作和分類講述
  4. 細談VB.NET路徑選擇對話框實現(API)實例
  5. 強化VB.NET編程多線程句柄技巧
責任編輯:田樹 來源: 博客
相關推薦

2009-11-02 16:22:16

VB.NET面向對象

2009-11-04 08:53:57

VB.NET AddH

2009-10-28 10:04:53

VB.NET XmlW

2009-11-03 10:09:48

VB.NET對象

2010-01-12 10:29:51

VB.NET對象串行化

2009-10-28 17:44:31

VB.NET語言

2010-01-12 10:48:54

VB.NET LIST

2009-11-04 10:54:53

VB.NET MOVE

2009-10-15 10:57:16

VB.NET Text

2009-10-29 15:16:02

VB.NET文件傳送

2009-10-14 15:20:21

VB.NET窗體指針

2009-10-16 13:26:53

VB.NET Exce

2010-01-07 13:51:50

VB.NET數組賦值

2010-01-20 18:10:27

VB.NET訪問級別

2009-11-02 14:48:45

VB.NET HOOK

2009-11-02 15:57:36

VB.NET WEB

2009-11-10 16:46:52

VB.NET指針應用

2009-10-15 11:42:05

VB.Net賦值語句

2009-10-09 15:59:41

VB.NET對象

2009-11-02 10:42:04

VB.NET EXCE
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91免费在线视频 | 久久男人| 国产成人一区二 | 成人在线观看免费视频 | 亚洲在线免费观看 | 国产激情精品 | 免费啪啪 | 福利精品在线观看 | 精品国产一级 | www.奇米| 亚洲综合激情 | 日本三级电影在线观看视频 | 日韩欧美亚洲 | 久久久不卡网国产精品一区 | 欧美理论片在线观看 | 日韩精品一区二区三区中文在线 | 色欧美综合 | 一区二区三区免费在线观看 | 欧美男人的天堂 | 久久成人精品一区二区三区 | 国产精品欧美一区二区三区不卡 | 欧美成人激情 | 久久免费小视频 | 亚洲精品一区二区三区中文字幕 | 久久久亚洲精品视频 | 国产精品视频久久久 | 久久国产精品免费一区二区三区 | 久久久久国产精品一区二区 | 在线观看欧美日韩视频 | 色婷婷婷婷色 | 精品91视频 | 国产成人久久精品 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 亚洲福利在线视频 | 国产精品毛片一区二区在线看 | 色婷婷国产精品综合在线观看 | 国产人成精品一区二区三 | 国产色网站 | 国产欧美精品一区二区 | aaa一区 | 成人在线精品视频 |