你了解VB.NET EXCEL操作
大家知道了解EXCEL嗎?在網(wǎng)上收集了大量的關(guān)于VB.NET EXCEL操作的資料,在這里拿出來和大家分享一下。EXCEL的宏功能:EXCEL提供一個(gè)Visual Basic編輯器,打開Visual Basic編輯器,其中有一工程屬性窗口,點(diǎn)擊右鍵菜單的"插入模塊",則增加一個(gè)"模塊1",在此模塊中可以運(yùn)用Visual Basic語言編寫函數(shù)和過程并稱之為宏。其中,EXCEL有兩個(gè)自動(dòng)宏:一個(gè)是啟動(dòng)宏(Sub Auto_Open()),另一個(gè)是關(guān)閉宏(Sub Auto_Close())。它們的特性是:當(dāng)用EXCEL打含有啟動(dòng)宏的工簿時(shí),就會(huì)自動(dòng)運(yùn)行啟動(dòng)宏,同理,當(dāng)關(guān)閉含有關(guān)閉宏的工作簿時(shí)就會(huì)自動(dòng)運(yùn)行關(guān)閉宏。但是通過VB的自動(dòng)化功能來調(diào)用EXCEL工作表時(shí),啟動(dòng)宏和關(guān)閉宏不會(huì)自動(dòng)運(yùn)行,而需要在VB中通過命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 來運(yùn)行啟動(dòng)宏和關(guān)閉宏。
#T#VB.NET EXCEL操作分析:
充分利用EXCEL的啟動(dòng)宏和關(guān)閉宏,可以實(shí)現(xiàn)VB與EXCEL的相互勾通,其方法如下:
在EXCEL的啟動(dòng)宏中加入一段程序,其功能是在磁盤中寫入一個(gè)標(biāo)志文件,同時(shí)在關(guān)閉宏中加入一段刪除此標(biāo)志文件的程序。VB程序在執(zhí)行時(shí)通過判斷此標(biāo)志文件存在與否來判斷EXCEL是否打開,如果此標(biāo)志文件存在,表明EXCEL對象正在運(yùn)行,應(yīng)該禁止其它程序的運(yùn)行。如果此標(biāo)志文件不存在,表明EXCEL對象已被用戶關(guān)閉,此時(shí)如果要使用EXCEL對象運(yùn)行,必須重新創(chuàng)建EXCEL對象。
VB.NET EXCEL操作案例:
1、在VB中,建立一個(gè)FORM,在其上放置兩個(gè)命令按鈕,將Command1的Caption屬性改為EXCEL,Command2的Caption屬性改為End。然后在其中輸入如下程序:
- Dim xlApp As Excel.Application '定義EXCEL類
- Dim xlBook As Excel.Workbook '定義工件簿類
- Dim xlsheet As Excel.Worksheet '定義工作表類
- Private Sub Command1_Click() '打開EXCEL過程
- If Dir("D:\temp\excel.bz") = "" Then '判斷EXCEL是否打開
- Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL應(yīng)用類
- xlApp.Visible = True '設(shè)置EXCEL可見
- Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls") '打開EXCEL工作簿
- Set xlsheet = xlBook.Worksheets(1) '打開EXCEL工作表
- xlsheet.Activate '激活工作表
- xlsheet.Cells(1, 1) = "abc" '給單元格1行駛列賦值
- xlBook.RunAutoMacros (xlAutoOpen) 運(yùn)行EXCEL中的啟動(dòng)宏
- Else
- MsgBox ("EXCEL已打開")
- End If
- End Sub
- Private Sub Command2_Click()
- If Dir("D:\temp\excel.bz") <> "" Then '由VB關(guān)閉EXCEL
- xlBook.RunAutoMacros (xlAutoClose) '執(zhí)行EXCEL關(guān)閉宏
- xlBook.Close (True) '關(guān)閉EXCEL工作簿
- xlApp.Quit '關(guān)閉EXCEL
- End If
- Set xlApp = Nothing '釋放EXCEL對象
- End
- End Sub
2、在D盤根目錄上建立一個(gè)名為Temp的子目錄,在Temp目錄下建立一個(gè)名為"bb.xls"的EXCEL文件。
3、在"bb.xls"中打開Visual Basic編輯器,在工程窗口中點(diǎn)鼠標(biāo)鍵選擇插入模塊,在模塊中輸入入下程序存盤:
- Sub auto_open()
- Open "d:\temp\excel.bz" For Output As #1 '寫標(biāo)志文件
- Close #1
- End Sub
- Sub auto_close()
- Kill "d:\temp\excel.bz" '刪除標(biāo)志文件
- End Sub
4、運(yùn)行VB程序,點(diǎn)擊EXCEL按鈕可以打開EXCEL系統(tǒng),打開EXCEL系統(tǒng)后,VB程序和EXCEL分別屬兩個(gè)不同的應(yīng)用系統(tǒng),均可同時(shí)進(jìn)行操作,由于系統(tǒng)加了判斷,因此在VB程序中重復(fù)點(diǎn)擊EXCEL按鈕時(shí)會(huì)提示EXCEL已打開。如果在EXCEL中關(guān)閉EXCEL后再點(diǎn)EXCEL按鈕,則會(huì)重新打開EXCEL。而無論EXCEL打開與否,通過VB程序均可關(guān)閉EXCEL。這樣就實(shí)現(xiàn)了VB與EXCEL的無縫連接。