日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

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

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

1. EXCEL的對象模型

如果一個應(yīng)用程序支持自動化技術(shù),那么其它的應(yīng)用就可以通過其暴露的對象,對它進行控制,控制程序稱為客戶機,而被控制的一方就稱為服務(wù)器,被控制的對象就是Active對象。VB正是通過EXCEL顯露的各級對象來控制EXCEL工作的。每個對象都有各自的方法和屬性,通過方法可以實現(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的一個工作表。  
  3. .Cells和Range對象,它們是worksheets對象的下層,它則指向Excel工作表中的一個或多個單元格。   

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

2 .Excel對象的使用

application對象的使用

如前所述,Application對象位于Excel層次結(jié)構(gòu)對象的最上層,它代表的是Excel自身,我們的應(yīng)用程序理應(yīng)從Application對象的建立開始。VB控制Excel的啟動方式有幾種,在這里我們使用了API調(diào)用,可以確保目前系統(tǒng)中只有一個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函數(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  '延遲錯誤捕獲。  
  5. '不帶第一個參數(shù)調(diào)用 Getobject 函數(shù)將返回對該應(yīng)用程序的實例的引用。  
  6. '如果該應(yīng)用程序不在運行,則會產(chǎn)生錯誤。  
  7. Set MyXL = GetObject(, "Excel.Application")  
  8. If Err.Number <> 0 Then ExcelWasNotRunning = True 
  9. Err.Clear '如果發(fā)生錯誤則要清除 Err 對象。  
  10. '檢測 Microsoft Excel。如果 Microsoft Excel 在運行,則將其加入運行對象表。  
  11. DetectExcel'該過程檢測并登記正在運行的 Excel  
  12. '設(shè)置其 Application 屬性,顯示 Microsoft Excel。  
  13. '然后使用 MyXL 對象引用的 Windows 集合,顯示包含該文件的實際窗口。  
  14. MyXL.Application.Visible = True 
  15. MyXL.Parent.Windows(1).Visible = True 
  16. '如果在啟動時,Microsoft Excel 的這份副本不在運行中,  
  17. '則使用 Application 屬性的 Quit 方法來關(guān)閉它。  
  18. '注意,當(dāng)試圖退出 Microsoft Excel 時,  
  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. '該過程檢測并登記正在運行的 Excel。  
  26. Sub DetectExcel()  
  27. Const WM_USER = 1024 
  28. Dim hwnd As Long  
  29. '如果 Excel 在運行,則該 API 調(diào)用將返回其句柄。  
  30. hwnd = FindWindow("XLMAIN", 0)  
  31. If hwnd = 0 Then  '0 表示沒有 Excel 在運行。  
  32. Exit Sub  
  33. Else  
  34. 'Excel 在運行,因此可以使用 SendMessage API'函數(shù)將其放入運行對象表。  
  35. SendMessage hwnd, WM_USER + 18, 0, 0  
  36. End If  
  37. End Sub 

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

【編輯推薦】

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

當(dāng)前文章:全面簡述VB.NET excel對象原理
瀏覽路徑:http://www.5511xx.com/article/dhgddoh.html