




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1/1Excel處理的對象是1對于剛接觸VSTO的朋友來說,可能根本就不知道如何去創(chuàng)建一個VSTO的項(xiàng)目的,相信通過這個部分大家就會覺得是如此的簡單。
2環(huán)境的搭建3進(jìn)行VSTO開發(fā)的環(huán)境搭建是相當(dāng)簡單的,只需要安裝VisualStudio2010(當(dāng)然安裝VS2010的時候在安裝組件中必須勾選VSTO選擇,這個選項(xiàng)是默認(rèn)勾上的。
大家可以在安裝VS的時候留意下)和Office2010就可以,當(dāng)然VS2008和Office2007的安裝也可以完成環(huán)境的搭建。
4創(chuàng)建第一個Excel工程來開始我們的VSTO之旅5第一步,選擇新建項(xiàng)目-VisualC#-Office-2010,然后選擇Excel2010外接程序(如何是英文版即Excel2010Add-in),如下圖:
67從圖中可以看到,除了外接程序外,還有Excel模板和Excel文檔這兩種項(xiàng)目類型,他們的區(qū)別是外接程序是應(yīng)用程序級別的,即如果你創(chuàng)建了Excel2010外接程序,該程序?qū)λ蠩xcel應(yīng)用都是有效的,因?yàn)槊看蜤xcel的啟動過程都會加載該插件(即該程序),大家肯定留意到當(dāng)我們啟動Excel或Word的時候都會加載一些加載項(xiàng),其實(shí)這些加載項(xiàng)就是屬于外接程序,即插件,啟動過程見下面圖:
89而文檔和模板項(xiàng)目,都是屬于文檔級別的程序,該程序只對當(dāng)前文檔和模板有效,創(chuàng)建這兩種類型的項(xiàng)目,會在項(xiàng)目的工程目錄下會生成一個word文件(文檔項(xiàng)目會生成一個Document1.docx文件,模板項(xiàng)目會生成一個Document1.dotx文件)。
10創(chuàng)建成功之后,外接程序的項(xiàng)目文件結(jié)構(gòu)見下圖:
1112從圖中可以看出,剛創(chuàng)建的VSTO外接程序都只有一個ThisAddIn.cs文件,該文件即是一個宿主項(xiàng)(更多關(guān)于宿主項(xiàng)和宿主控件的內(nèi)容可以查看該系列的第一篇博文),我們可以通過這個文件來對Excel對象進(jìn)行訪問。
同時該類中有ThisAddIn_Startup和ThisAddIn_Shutdown兩個方法,從兩個方法中命名中可以知道,如果你的代碼想在加載外接程序時運(yùn)行的話,就放把代碼放在ThisAddIn_Startup方法內(nèi)容,如果你想在外接程序卸載的時候運(yùn)行你的代碼,就把這些代碼放在ThisAddIn_Shutdown方法內(nèi)。
13三、Excel對象模型14要開發(fā)Excel的項(xiàng)目,就自然少不了對Excel對象模型的了解了,只有了解Excel對象模型,這樣才能更好地對Excel進(jìn)行處理。
下面先給出一張Excel對象模型的圖:
1516下面就具體對上圖中的各個對象做一個簡單的介紹:
17Application對象Excel中的Application對象表示Excel應(yīng)用程序,該對象是所有Excel對象的根,你可以通過Application對象,獲取到其他對象,在外接程序中,我們可以通過下面的方式來獲得Application對象:
Globals.ThisAddIn.Application18Workbooks對象代表Workbook對象的集合,而Workbook對象表示Excel中的單個工作簿,我們可以通過下面的方式來獲得工作簿對象:
Globals.ThisAddIn.Application.ThisWorkbook19Worksheets對象代表Worksheet對象的集合,而Worksheet代表的就是Excel中的表,下面的代碼可以獲得Worksheet對象:
Globals.ThisAddIn.Application.ThisWorkbook.ActiveSheet(激活的表,每次打開一個Excel文件,都是表一即sheet1被激活,所以通過該代碼就說獲得表一對象)20Range對象代表一個范圍,是操作Excel文檔最常用的對象,它可以表示為一個單元格、一行、一列或多個單元格塊(可以連續(xù),也可以不連續(xù))的單元格選定范圍,甚至多個工作表中的一組單元格。
可能上面的解釋過于枯燥,相信大家通過下圖可以更好地理解Excel中的各個對象:
2122四、創(chuàng)建Excel外接程序23介紹完了Excel對象模型之后,我們就可以利用這些對象來對Excel文檔進(jìn)行操作了,下面就創(chuàng)建一個簡單的Excel外接程序的。
24首先我們模擬一個需求,大多說軟件在使用時都會彈出一個歡迎界面,這樣我們就創(chuàng)建一個外接程序,每次打開Excel文件時彈出一個歡迎界面,退出時彈出謝謝使用界面。
25我們只需要在上面的創(chuàng)建工程中介入下面的代碼即可:
1usingSystem.Windows.Forms;23namespaceMyExcelAddIn14{5publicpartialclassThisAddIn6{7privatevoidThisAddIn_Startup(objectsender,System.EventArgse)8{9//因?yàn)闅g迎使用窗口要在打開Excel的時候彈出,所以把下面代碼放在Startup方法內(nèi)10MessageBox.Show(歡迎使用MicrosoftExcel);11}1213privatevoidThisAddIn_Shutdown(objectsender,System.EventArgse)14{15//在退出Excel的時候彈出謝謝使用窗口,所以把下面的代碼放在Shutdown方法內(nèi)16MessageBox.Show(謝謝使用!);17}1819#regionVSTOgeneratedcode2021///summary22///RequiredmethodforDesignersupport-donotmodify23///thecontentsofthismethodwiththecodeeditor.24////summary25privatevoidInternalStartup()26{27this.Startup+=newSystem.EventHandler(ThisAddIn_Startup);28this.Shutdown+=newSystem.EventHandler(ThisAddIn_Shutdown);29}3031#endregion32}33}這樣,我們就完成了上面簡單的一個模擬需求了,下面讓我們按F5來測試下效果吧!26按F5運(yùn)行該程序時,首先打開一個Excel之后,一個歡迎界面就會彈出:
2728點(diǎn)擊Excel窗口上的X按鈕時,就會彈出一個謝謝使用!的窗口,效果如下:
2930點(diǎn)擊Ok按鈕之后才會正常退出Excel。
這樣就完成了一個簡單的Excel外接程序了,上面提到過外接程序是應(yīng)用程序級別的,所以當(dāng)你每次打開Excel的時候都會有這樣的一個歡迎界面和關(guān)閉Excel時都有一個謝謝使用窗口,有些朋友想問了,如果我想卸載這個插件怎么辦呢?方法很簡單,只需要右鍵你的解決方案清理,這樣可以了,另外你也可以從開發(fā)工具選項(xiàng)卡COM插件,在彈出的窗口中選擇你自定義的插件再按下移除按鈕。
具體步驟見下圖:
3132五、創(chuàng)建Excel文檔級自定義項(xiàng)33介紹完了創(chuàng)建Excel外接程序之后,下面看看如何創(chuàng)建一個文檔級的項(xiàng)目:
341.新建一個Excel2010Workbook(即Excel工作簿)項(xiàng)目:
35362.單擊OK按鈕,在下面的窗口中單擊OK按鈕:
37383.在第一創(chuàng)建Excel工作簿項(xiàng)目是會彈出下面的一個窗口(窗口意思為:
是否允許創(chuàng)建的項(xiàng)目訪問VBA項(xiàng)目系統(tǒng)),此時我們只需要點(diǎn)擊Ok就完成了Excel工作簿項(xiàng)目的創(chuàng)建。
3940現(xiàn)在我們來模擬一個需求,比如現(xiàn)在有一個成績單工作表,我們希望獲得各科目不及格同學(xué)的名字。
此時我們只需要在上面創(chuàng)建的工作簿項(xiàng)目中添加一個ComboBox,一個Button,一個textbox。
在button的Click事件中添加下面的代碼:
1//找出各科目不及格同學(xué)的名字2privatevoidbtnSearch_Click(objectsender,EventArgse)3{4//清除textbox中的內(nèi)容5txtResult.Clear();67//從復(fù)選框中獲得選擇的科目索引8intsubjectIndex=cbxsubjects.SelectedIndex;9if(subjectIndex==-1)10{11MessageBox.Show(請先選擇一個科目);12return;13}1415//獲得選擇的科目名稱16stringsubjectName=cbxsubjects.SelectedItem.ToString();17//獲得工作表對象18Excel.Worksheetworksheet=(Excel.Worksheet)Globals.ThisWorkbook.ActiveSheet;1920for(introw=2;rowworksheet.UsedRange.Rows.Count+1;row++)21{22Excel.Rangerng=(Excel.Range)worksheet.Cells[row,subjectIndex+2];23Excel.Rangerng1=(Excel.Range)worksheet.Cells[row,1];24if(rng.Value60)25{26txtResult.Text+=rng1.Value+;;27}28}29if(txtResult.Text.Length==0)30
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 影視后期特效制作實(shí)戰(zhàn)手冊(如AE)
- 工程經(jīng)濟(jì)項(xiàng)目可行性研究報(bào)告
- 中級養(yǎng)老護(hù)理復(fù)習(xí)測試有答案
- 活動策劃報(bào)告
- 婦產(chǎn)科護(hù)理練習(xí)試題附答案
- 職場新人培訓(xùn)計(jì)劃與教材編寫指南
- 物流倉儲作業(yè)指導(dǎo)手冊
- 三農(nóng)宣傳推廣與教育方案
- 智能家居設(shè)備維護(hù)與故障排除教程
- 交通運(yùn)輸行業(yè)智能交通與自動駕駛技術(shù)研究方案
- 全國運(yùn)動員注冊協(xié)議書范本(2篇)
- 《高點(diǎn)全景視頻監(jiān)控聯(lián)網(wǎng)技術(shù)要求》
- 白云山生態(tài)停車場工程施工組織設(shè)計(jì)施工方案
- 2024年四川省綿陽市中考語文試卷(附真題答案)
- 【MOOC】Office高級應(yīng)用-成都信息工程大學(xué) 中國大學(xué)慕課MOOC答案
- 足球英語課件
- 盆底康復(fù)課件
- CNAS認(rèn)可準(zhǔn)則、規(guī)則考核專項(xiàng)測試題附答案
- 中等職業(yè)學(xué)校口腔修復(fù)工藝專業(yè)實(shí)訓(xùn)教學(xué)條件建設(shè)標(biāo)準(zhǔn)
- 藥品經(jīng)營使用和質(zhì)量監(jiān)督管理辦法2024年宣貫培訓(xùn)課件
- 保安服務(wù) 投標(biāo)方案(技術(shù)標(biāo) )
評論
0/150
提交評論