版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1/1Excel處理的對象是1對于剛接觸VSTO的朋友來說,可能根本就不知道如何去創(chuàng)建一個VSTO的項目的,相信通過這個部分大家就會覺得是如此的簡單。
2環(huán)境的搭建3進行VSTO開發(fā)的環(huán)境搭建是相當簡單的,只需要安裝VisualStudio2010(當然安裝VS2010的時候在安裝組件中必須勾選VSTO選擇,這個選項是默認勾上的。
大家可以在安裝VS的時候留意下)和Office2010就可以,當然VS2008和Office2007的安裝也可以完成環(huán)境的搭建。
4創(chuàng)建第一個Excel工程來開始我們的VSTO之旅5第一步,選擇新建項目-VisualC#-Office-2010,然后選擇Excel2010外接程序(如何是英文版即Excel2010Add-in),如下圖:
67從圖中可以看到,除了外接程序外,還有Excel模板和Excel文檔這兩種項目類型,他們的區(qū)別是外接程序是應用程序級別的,即如果你創(chuàng)建了Excel2010外接程序,該程序對所有Excel應用都是有效的,因為每次Excel的啟動過程都會加載該插件(即該程序),大家肯定留意到當我們啟動Excel或Word的時候都會加載一些加載項,其實這些加載項就是屬于外接程序,即插件,啟動過程見下面圖:
89而文檔和模板項目,都是屬于文檔級別的程序,該程序只對當前文檔和模板有效,創(chuàng)建這兩種類型的項目,會在項目的工程目錄下會生成一個word文件(文檔項目會生成一個Document1.docx文件,模板項目會生成一個Document1.dotx文件)。
10創(chuàng)建成功之后,外接程序的項目文件結構見下圖:
1112從圖中可以看出,剛創(chuàng)建的VSTO外接程序都只有一個ThisAddIn.cs文件,該文件即是一個宿主項(更多關于宿主項和宿主控件的內容可以查看該系列的第一篇博文),我們可以通過這個文件來對Excel對象進行訪問。
同時該類中有ThisAddIn_Startup和ThisAddIn_Shutdown兩個方法,從兩個方法中命名中可以知道,如果你的代碼想在加載外接程序時運行的話,就放把代碼放在ThisAddIn_Startup方法內容,如果你想在外接程序卸載的時候運行你的代碼,就把這些代碼放在ThisAddIn_Shutdown方法內。
13三、Excel對象模型14要開發(fā)Excel的項目,就自然少不了對Excel對象模型的了解了,只有了解Excel對象模型,這樣才能更好地對Excel進行處理。
下面先給出一張Excel對象模型的圖:
1516下面就具體對上圖中的各個對象做一個簡單的介紹:
17Application對象Excel中的Application對象表示Excel應用程序,該對象是所有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文檔進行操作了,下面就創(chuàng)建一個簡單的Excel外接程序的。
24首先我們模擬一個需求,大多說軟件在使用時都會彈出一個歡迎界面,這樣我們就創(chuàng)建一個外接程序,每次打開Excel文件時彈出一個歡迎界面,退出時彈出謝謝使用界面。
25我們只需要在上面的創(chuàng)建工程中介入下面的代碼即可:
1usingSystem.Windows.Forms;23namespaceMyExcelAddIn14{5publicpartialclassThisAddIn6{7privatevoidThisAddIn_Startup(objectsender,System.EventArgse)8{9//因為歡迎使用窗口要在打開Excel的時候彈出,所以把下面代碼放在Startup方法內10MessageBox.Show(歡迎使用MicrosoftExcel);11}1213privatevoidThisAddIn_Shutdown(objectsender,System.EventArgse)14{15//在退出Excel的時候彈出謝謝使用窗口,所以把下面的代碼放在Shutdown方法內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運行該程序時,首先打開一個Excel之后,一個歡迎界面就會彈出:
2728點擊Excel窗口上的X按鈕時,就會彈出一個謝謝使用!的窗口,效果如下:
2930點擊Ok按鈕之后才會正常退出Excel。
這樣就完成了一個簡單的Excel外接程序了,上面提到過外接程序是應用程序級別的,所以當你每次打開Excel的時候都會有這樣的一個歡迎界面和關閉Excel時都有一個謝謝使用窗口,有些朋友想問了,如果我想卸載這個插件怎么辦呢?方法很簡單,只需要右鍵你的解決方案清理,這樣可以了,另外你也可以從開發(fā)工具選項卡COM插件,在彈出的窗口中選擇你自定義的插件再按下移除按鈕。
具體步驟見下圖:
3132五、創(chuàng)建Excel文檔級自定義項33介紹完了創(chuàng)建Excel外接程序之后,下面看看如何創(chuàng)建一個文檔級的項目:
341.新建一個Excel2010Workbook(即Excel工作簿)項目:
35362.單擊OK按鈕,在下面的窗口中單擊OK按鈕:
37383.在第一創(chuàng)建Excel工作簿項目是會彈出下面的一個窗口(窗口意思為:
是否允許創(chuàng)建的項目訪問VBA項目系統(tǒng)),此時我們只需要點擊Ok就完成了Excel工作簿項目的創(chuàng)建。
3940現(xiàn)在我們來模擬一個需求,比如現(xiàn)在有一個成績單工作表,我們希望獲得各科目不及格同學的名字。
此時我們只需要在上面創(chuàng)建的工作簿項目中添加一個ComboBox,一個Button,一個textbox。
在button的Click事件中添加下面的代碼:
1//找出各科目不及格同學的名字2privatevoidbtnSearch_Click(objectsender,EventArgse)3{4//清除textbox中的內容5txtResult.Clear();67//從復選框中獲得選擇的科目索引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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度溫室大棚租賃與新能源應用合同3篇
- 二零二五年度美容院品牌合作入股合同范本3篇
- 2025年度傳媒公司戰(zhàn)略合作伙伴保密協(xié)議范本3篇
- 二零二五年度農產品電商平臺農產品定制采購合同3篇
- 二零二五年度農村土地流轉中介服務合同2篇
- 二零二五年度養(yǎng)老社區(qū)入住與養(yǎng)老規(guī)劃協(xié)議3篇
- 二零二五年度軍事院校保密協(xié)議及教學科研資料保護合同3篇
- 2025年度農村山里墓地買賣合同書2篇
- 2025年度農村土地永久互換與農業(yè)生態(tài)環(huán)境保護合作協(xié)議2篇
- 2025年度農村自建房施工建筑垃圾處理與回收利用合同
- 《地震災害及其防治》課件
- 2024年版電商平臺入駐商家服務與銷售分成合同
- 蜜雪冰城合同范例
- LPG液化氣充裝站介質分析操作規(guī)程 202412
- 養(yǎng)老院環(huán)境衛(wèi)生保潔方案
- 2024年WPS計算機二級考試題庫350題(含答案)
- 天津市武清區(qū)2024-2025學年九年級上學期11月期中物理試題(無答案)
- 2023屆安徽省馬鞍山市高三第一次教學質量監(jiān)測(一模)理綜生物試題(原卷版)
- 充電樁租賃協(xié)議模板
- 生物統(tǒng)計學(全套課件)
- 四川新農村建設農房設計方案圖集川東北部分
評論
0/150
提交評論