日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
全面簡(jiǎn)述VB.NET excel對(duì)象原理

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

為奉化等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及奉化網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、奉化網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

1. EXCEL的對(duì)象模型

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

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

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

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

2 .Excel對(duì)象的使用

application對(duì)象的使用

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

 
 
 
  1. Option Explicit  
  2. Public xlapp As Object‘Excel對(duì)象  
  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ù)將返回對(duì)該應(yīng)用程序的實(shí)例的引用。  
  6. '如果該應(yīng)用程序不在運(yùn)行,則會(huì)產(chǎn)生錯(cuò)誤。  
  7. Set MyXL = GetObject(, "Excel.Application")  
  8. If Err.Number <> 0 Then ExcelWasNotRunning = True 
  9. Err.Clear '如果發(fā)生錯(cuò)誤則要清除 Err 對(duì)象。  
  10. '檢測(cè) Microsoft Excel。如果 Microsoft Excel 在運(yùn)行,則將其加入運(yùn)行對(duì)象表。  
  11. DetectExcel'該過(guò)程檢測(cè)并登記正在運(yùn)行的 Excel  
  12. '設(shè)置其 Application 屬性,顯示 Microsoft Excel。  
  13. '然后使用 MyXL 對(duì)象引用的 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 方法來(lái)關(guān)閉它。  
  18. '注意,當(dāng)試圖退出 Microsoft Excel 時(shí),  
  19. '標(biāo)題欄會(huì)閃爍,并顯示一條消息詢問(wèn)是否保存所加載的文件。  
  20. If ExcelWasNotRunning = True Then  
  21. MyXL.Application.Quit  
  22. End If  
  23. Set MyXL = Nothing  '釋放對(duì)該應(yīng)用程序和電子數(shù)據(jù)表的引用。  
  24. End Sub  
  25. '該過(guò)程檢測(cè)并登記正在運(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)行對(duì)象表。  
  35. SendMessage hwnd, WM_USER + 18, 0, 0  
  36. End If  
  37. End Sub 

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

【編輯推薦】

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

本文名稱:全面簡(jiǎn)述VB.NET excel對(duì)象原理
文章來(lái)源:http://www.dlmjj.cn/article/dhgddoh.html