偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

1. EXCEL的對象模型

如果一個(gè)應(yīng)用程序支持自動(dòng)化技術(shù),那么其它的應(yīng)用就可以通過其暴露的對象,對它進(jìn)行控制,控制程序稱為客戶機(jī),而被控制的一方就稱為服務(wù)器,被控制的對象就是Active對象。VB正是通過EXCEL顯露的各級對象來控制EXCEL工作的。每個(gè)對象都有各自的方法和屬性,通過方法可以實(shí)現(xiàn)對對象的控制,而屬性則可以改變對象的各種狀態(tài)。

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

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

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

2 .Excel對象的使用

application對象的使用

如前所述,Application對象位于Excel層次結(jié)構(gòu)對象的最上層,它代表的是Excel自身,我們的應(yīng)用程序理應(yīng)從Application對象的建立開始。VB控制Excel的啟動(dòng)方式有幾種,在這里我們使用了API調(diào)用,可以確保目前系統(tǒng)中只有一個(gè)Excel副本在運(yùn)行,程序代碼和說明如下:

  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函數(shù)應(yīng)在模塊中聲明。

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

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

【編輯推薦】

  1. 強(qiáng)化VB.NET Word文檔創(chuàng)建Document對象
  2. VB.NET Word對象模型兩大要點(diǎn)介紹
  3. 全方位VB.NET文件操作和分類講述
  4. 細(xì)談VB.NET路徑選擇對話框?qū)崿F(xiàn)(API)實(shí)例
  5. 強(qiáng)化VB.NET編程多線程句柄技巧
責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-11-02 16:22:16

VB.NET面向?qū)ο?/a>

2009-11-04 08:53:57

VB.NET AddH

2009-11-03 10:09:48

VB.NET對象

2009-10-28 10:04:53

VB.NET XmlW

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-29 15:16:02

VB.NET文件傳送

2009-10-14 15:20:21

VB.NET窗體指針

2009-10-15 10:57:16

VB.NET Text

2009-10-16 13:26:53

VB.NET Exce

2010-01-07 13:51:50

VB.NET數(shù)組賦值

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指針應(yīng)用

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
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號