第1章VSTO入門概述················11.1VSTO簡述··································1
1.1.1VSTO的功能與特點·······················1
1.1.2VSTO開發語言·····························2
1.1.3VSTO開發環境配置·······················3
1.1.4VisualStudio開發環境·····················4
1.1.5VisualStudio版本沿革·····················4
1.1.6VisualStudio的安裝························4
1.2創建第一個C#應用程序·················5
1.2.1控制臺應用程序····························5
1.2.2Windows窗體應用程序···················9
1.2.3生成可執行文件···························11
1.3認識VisualStudio開發環境·············11
1.3.1【文件】菜單······························12
1.3.2【視圖】菜單······························12
1.3.3【項目】菜單······························12
1.3.4菜單欄和工具欄的自定義···············13
1.3.5VisualStudio選項··························14
1.4VisualStudio項目組織結構·············14
1.4.1解決方案····································14
1.4.2項目··········································17
1.4.3類模塊·······································18
1.4.4引用管理····································18
1.5使用幫助系統·····························19
1.5.1設置幫助查看方式························19
1.5.2下載和安裝HelpViewer··················19
1.5.3管理幫助內容······························19
本章要點回顧····································21
第2章C#語法基礎···················22
2.1變量的聲明和賦值······················22
2.1.1常用的數據類型···························22
2.1.2賦值運算符·································23
2.1.3變量的作用范圍···························23
2.2字符與字符串處理·······················24
2.2.1字符變量····································24
2.2.2字符串變量·································25
2.2.3轉義字符····································26
2.2.4字符串連接·································27
2.2.5子字符串····································27
2.2.6格式化字符串······························28
2.2.7字符串的替換······························28
2.2.8字符串與數組······························28
2.3邏輯運算···································29
2.3.1布爾型變量·································29
2.3.2比較運算符·································30
2.3.3多條件的與或非運算·····················30
2.4不同類型的強制轉換····················31
2.4.1ToString·····································31
2.4.2Parse·········································31
2.4.3Convert······································32
2.5使用數組···································33
2.5.1數組的聲明和初始化·····················33
2.5.2一維數組····································33
2.5.3數組元素的遍歷···························34
2.5.4二維數組····································35
2.6條件選擇語句·····························37
2.6.1三元運算符·································37
2.6.2if語句········································38
2.6.3switch語句··································39
2.7循環語句···································40
2.7.1while循環···································40
2.7.2do循環·······································41
2.7.3for循環······································42
2.7.4foreach循環·································43
2.8流程控制語句·····························43
2.8.1break語句···································43
2.8.2continue語句·······························44
2.8.3goto語句····································44
2.8.4return語句···································45
2.9輸出對話框(MessageBox)··········46
2.9.1MessageBox語法··························46
2.9.2自定義對話框的按鈕·····················47
2.9.3自定義對話框的圖標·····················48
2.9.4自定義對話框默認按鈕··················48
2.9.5處理對話框的用戶響應··················48
2.10輸入對話框(InputBox)
·············49
2.11過程與函數······························50
2.11.1過程與函數的定義······················50
2.11.2過程與函數的調用······················51
2.12類的創建和使用························52
2.12.1非靜態類··································52
2.12.2靜態類·····································54
2.13using指令·································55
2.14錯誤處理·································55
本章要點回顧····································56
第3章C#進階技術···················57
3.1文件與文件夾操作·······················57
3.1.1System.IO命名空間·······················57
3.1.2文件與文件夾處理實例··················58
3.2文本文件的讀寫··························59
3.3數據庫操作································60
3.4使用資源文件·····························61
3.4.1添加資源文件······························62
3.4.2資源文件中的字符串·····················62
3.4.3資源文件中的圖像························63
3.5使用正則表達式··························65
3.5.1創建Regex對象····························65
3.5.2元字符·······································65
3.5.3正則表達式選項···························66
3.5.4正則表達式方法···························67
3.5.5正則表達式測試器························71
3.6使用字典···································72
3.6.1字典對象的創建···························72
3.6.2根據鍵檢索值······························73
3.6.3遍歷所有鍵名······························74
3.6.4遍歷所有值·································74
3.6.5去除重復····································74
3.7窗體設計技術·····························76
3.7.1窗體的顯示·································76
3.7.2窗體的卸載·································77
3.7.3窗體與控件的事件························78
3.7.4使用窗體菜單······························82
3.7.5使用工具欄·································85
3.7.6使用右鍵菜單······························87
3.7.7使用狀態欄·································88
3.7.8使用文件選擇對話框·····················90
3.7.9運行期間動態增刪控件··················91
3.8使用WindowsAPI函數··················94
3.8.1窗口類名和句柄···························95
3.8.2
使用Spy++··································98
3.8.3
使用UseAPI······························100
3.8.4獲取光標位置····························101
本章要點回顧··································101
第4章C#操作Excel對象··········102
4.1
Excel對象模型概述····················102
4.1.1Application對象··························103
4.1.2Workbook對象···························104
4.1.3Worksheet對象···························104
4.1.4Range對象································105
4.1.5Window對象······························105
4.2
創建可以訪問Excel對象的C#窗體
應用程序·································105
4.2.1添加Excel2010對象引用··············105
4.2.2添加Office2010對象引用··············105
4.3操作Application對象···················107
4.3.1獲取正在運行的Excel對象············107
4.3.2創建新的Excel對象·····················109
4.3.3Application對象常用屬性··············109
4.3.4Application對象常用方法··············110
4.3.5Application對象常用事件··············110
4.3.6Application重要集合對象··············111
4.4操作Workbook對象····················112
4.4.1Workbook對象常用屬性···············112
4.4.2Workbook對象常用方法···············113
4.4.3Workbook對象常用事件···············114
4.4.4Workbook重要集合對象···············114
4.5操作Worksheet對象····················115
4.5.1Worksheet對象常用屬性···············115
4.5.2Worksheet對象常用方法···············116
4.5.3Worksheet對象常用事件···············117
4.6操作Range對象·························117
4.6.1Range對象常用屬性····················117
4.6.2Range對象常用方法····················118
4.6.3Range對象的遍歷·······················119
4.6.4二維數組與Range數據交換···········120
4.6.5一維數組與Range數據交換···········121
4.7操作Commandbar對象················121
4.8操作VBE工程··························123
4.8.1引用VBIDE類型庫······················123
4.8.2允許對VBA工程訪問··················123
4.8.3操作VBE各級對象······················125
4.9
創建Excel自定義函數·················125
4.9.1
使用C#創建類庫························126
4.9.2
工作表中使用C#開發的自定義
公式········································129
4.9.3
VBA中調用C#開發的自定義公式···131
4.9.4
C#中調用C#開發的自定義公式······131
4.9.5客戶機使用C#制作的自定義函數·······132
本章要點回顧··································133
第5章創建Office外接程序·······134
5.1
OfficeCOM加載項簡介···············134
5.2
認識OfficeCOM加載項管理
對話框····································134
5.3創建第一個Office外接程序項目····135
5.4ThisAddin的啟動事件和卸載事件··136
本章要點回顧··································137
第6章自定義Office功能區·······138
6.1CustomUI概述··························138
6.1.1CustomUI的意義························140
6.1.2CustomUI的作用范圍··················140
6.1.3手工定制Office界面····················140
6.2CustomUI與XML·······················141
6.2.1XML語法規則···························141
6.2.2描述Office界面的XML·················142
6.2.3使用RibbonXMLEditor···············148
6.3CustomUI元素詳解····················149
6.3.1選項卡(tab)元素·····················150
6.3.2組(group)元素························151
6.3.3控件(control)元素···················151
6.4VSTO中使用功能區可視化
設計器····································154
6.4.1為按鈕指定回調過程···················156
6.4.2Group中加入DialogBoxLauncher·····157
6.5使用XML進行CustomUI定制········159
本章要點回顧··································162
第7章自定義任務窗格············163
7.1任務窗格行為控制·····················163
7.2VSTO外接程序項目中添加任務
窗格·······································164
7.2.1創建Excel2010外接程序··············165
7.2.2添加用戶控件····························165
7.2.3靜態類中聲明任務窗格對象··········166
7.2.4創建并顯示任務窗格···················167
7.3功能區與任務窗格的交互控制······169
7.3.1利用功能區切換按鈕控制任務窗格的
顯示隱藏··································169
7.3.2處理自定義任務窗格事件·············172
7.3.3完全卸載任務窗格······················173
本章要點回顧··································173
第8章自定義工具欄···············174
8.1Office工具欄對象簡述················174
8.1.1Commandbar對象·······················174
8.1.2CommandbarControl對象··············175
8.1.3自定義工具欄的作用和意義··········176
8.2VSTO實現自定義工具欄·············176
8.2.1創建自定義工具欄······················176
8.2.2處理工具欄按鈕的回調················178
8.2.3修改右鍵菜單····························179
8.2.4卸載外接程序時清除自定義··········180
本章要點回顧··································181
第9章VSTO外接程序的部署分發···182
9.1客戶機搭建VSTO運行環境··········182
9.2VSTO外接程序的簡單安裝··········183
9.3使用AdvancedInstaller················184
9.3.1創建aip安裝包工程·····················184
9.3.2客戶機運行安裝包······················193
本章要點回顧··································194
第10章VSTO開發Office文檔···195
10.1文檔自定義項編程概述·············195
10.2文檔自定義項允許添加的界面
元素·····································195
10.3創建Office文檔項目··················196
10.3.1文檔上添加C#控件····················198
10.3.2文檔項目的啟動事件過程···········198
10.4文檔操作窗格概述···················199
10.5文檔操作窗格綜合實例·············200
10.5.1添加用戶控件到文檔窗格···········202
10.5.2添加多個相同控件到文檔窗格·····204
10.5.3使用代碼創建窗體控件并添加到
文檔操作窗格··························205
10.5.4定制功能區按鈕控制文檔操作
窗格······································206
10.6文檔自定義項的部署分發··········210
本章要點回顧··································211
第11章VSTO開發資源大全·····212
11.1Office2003以下版本工具欄和控件的
自定義··································212
11.1.1OfficeCommandbarDesigner··········212
11.1.2OfficeCommandbarViewer············213
11.1.3FaceIDViewer···························213
11.2Office2007以上版本功能區的
自定義··································215
11.2.1Office2010ControlIDs·················215
11.2.2imageMso7345··························216
11.2.3OfficeCustomUIEditor·················217
11.2.4RibbonXMLEditor····················217
11.2.5Ribbon回調函數大全··················217
11.3編程環境輔助工具···················218
11.3.1VBE2014································219
11.3.2VisualStudioAddin2016···············220
第12章C#與VB/VBA語言的差異
對比··························222
12.1變量必須聲明·························222
12.2嚴格的類型匹配······················222
12.3項目的自動保存······················222
12.4嚴格區分大小寫······················223
12.5語句結束必須加分號················223
12.6語句塊··································223
12.7調用其他函數圓括號不能少·······224
12.8數組的下標為0························224
12.9數組或集合對象的索引使用
方括號··································225