添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
《VSTO开发中级教程》 由资深软件开发专家根据自己十余年VBA开发经验编写而成,深入阐释VSTO开发。全书内容体系完善,知识点高阶,案例丰富,让读者身临其境体会VSTO编程策略和魅力。
全书共20章,全面介绍VSTO开发的环境要求和配置、VSTO项目的概念和实现方法,主要内容包括Visual Studio的安装和使用、VB.NET语言基础和进阶技术、VSTO外接程序项目的开发、使用功能区可视化设计器以及Ribbon XML进行customUI设计、自定义任务窗格、文档自定义项的开发、Excel-DNA开发自定义公式和加载项等核心技术。本书内容由浅入深、难易结合,兼顾不同基础和水平的读者。采用VB.NET语言作为VSTO的开发语言,特别适合于具有VBA、VB6编程基础的人员学习和研究。
第1章VSTO开发综述1
1.1Office开发方式的选择?1
1.1.1VBA?2
1.1.2VB6?2
1.1.3VSTO?2
1.1.4用户自定义函数的开发?3
1.2VB.NET语言概述?4
1.2.1VB.NET和VB6的关系?4
1.2.2VB.NET和VB6程序结构的差别4
1.3Office界面方案的选择?5
1.3.1customUI设计6
1.3.2工具栏设计6
1.3.3任务窗格设计?7
1.4VSTO开发环境的选择?8
1.5小结8
第2章VisualStudio的安装和使用?9
2.1VisualStudio2017的安装?9
2.1.1安装引导程序的下载9
2.1.2系统需求和安装环境确认?11
2.1.3VisualStudio2007Professional的安装11
2.1.4VisualStudio的启动15
2.1.5VisualStudio的修复和卸载?15
2.2项目管理?16
2.2.1创建VSTO项目?17
2.2.2项目模板18
2.2.3创建时保存新项目19
2.2.4与项目有关的快捷键?20
2.3VisualStudio的选项设置?20
2.3.1更改默认开发语言21
2.3.2更改VisualStudio界面语言22
2.3.3更改代码风格23
2.4代码编写技巧?24
2.4.1代码的自动完成?24
2.4.2智能提示24
2.4.3查看定义24
2.4.4变量的重命名25
2.4.5查找和替换?26
2.5最常用的对话框27
2.6小结?27
第3章VB.NET语言基础29
3.1VB.NET程序的编译和运行30
3.1.1使用vbc.exe编译程序?30
3.1.2第一个VB.NET程序?31
3.1.3使用VisualStudio进行VB.NET编程?32
3.2VB.NET语法基础34
3.2.1变量、常量和赋值35
3.2.2字符和字符串36
3.2.3日期时间类型36
3.2.4整数类型40
3.2.5布尔和逻辑运算?41
3.2.6新增 赋值运算符 ?43
3.2.7信息输入和结果输出?43
3.2.8输入和输出对话框45
3.3类型的判断和转换?49
3.3.1编译选项设置49
3.3.2判断数据、变量的类型50
3.3.3类型转换51
3.4String.Format方法52
3.4.1对号入座52
3.4.2格式化数字?53
3.4.3格式化日期和时间55
3.5ToString方法56
3.6数组?56
3.6.1一维数组57
3.6.2数组的排序和倒序60
3.6.3数组的去重?60
3.6.4数组统计61
3.6.5两个数组的集合运算?61
3.6.6一维数组与字符串相互转换62
3.6.7二维数组63
3.6.8数组维数的判断?63
3.7条件选择?64
3.7.1If...Else结构64
3.7.2Select...Case结构65
3.8循环结构?66
3.8.1Do...Loop循环?66
3.8.2While循环67
3.8.3For循环?67
3.8.4For...Each循环?68
3.9匿名用法?69
3.9.1匿名类?69
3.9.2匿名过程70
3.9.3匿名函数71
3.10List泛型类?71
3.10.1泛型类与数组的转换72
3.10.2数组的过滤?72
3.10.3泛型类的过滤?73
3.11异常处理73
3.11.1异常原因分析?74
3.11.2异常分类处理?74
3.12项目组织76
3.12.1项目中添加文件76
3.12.2调用Module中的内容77
3.12.3类的创建和使用78
3.13项目的引用管理?79
3.13.1外部引用的添加和移除?79
3.13.2使用Imports指令81
3.14小结?82
第4章VB.NET窗体应用程序83
4.1窗体?83
4.1.1窗体的创建和显示83
4.1.2窗体的添加?85
4.1.3自动创建窗体87
4.1.4窗体的隐藏和卸载88
4.2控件的属性89
4.2.1常规属性设置89
4.2.2改变控件的位置和大小91
4.2.3通过Anchor属性设置控件基准点?92
4.2.4通过Dock属性设置控件的扩展93
4.2.5使用Splitter控件手动调整控件分布94
4.3控件的事件95
4.3.1使用WithEvents为控件添加事件95
4.3.2使用AddHandler和RemoveHandler添加和移除事件?97
4.3.3按键事件100
4.3.4窗体的KeyPreview属性?101
4.3.5鼠标单击事件102
4.3.6调用事件过程103
4.4专业窗体设计?104
4.4.1主菜单的设计104
4.4.2打开和保存对话框105
4.4.3创建右键快捷菜单107
4.4.4创建工具栏?109
4.4.5创建状态栏?110
4.5自动添加和删除控件111
4.5.1自动添加控件111
4.5.2自动删除控件112
4.5.3自动添加控件数组112
4.6小结?114
第5章VB.NET控件技术115
5.1文本编辑类控件115
5.1.1TextBox115
5.1.2RichTextBox116
5.1.3MaskedTextBox117
5.2标签类控件118
5.2.1Label?119
5.2.2LinkLabel?119
5.3选择类控件120
5.3.1CheckBox?120
5.3.2RadioButton121
5.4列表条目类控件121
5.4.1ComboBox121
5.4.2ListBox122
5.4.3CheckedListBox124
5.5数值调节类控件125
5.5.1HScrollBar和VScrollBar125
5.5.2TrackBar?126
5.5.3NumericUpDown126
5.5.4DomainUpDown?127
5.6状态提示类控件128
5.6.1NotifyIcon?128
5.6.2ProgressBar?128
5.6.3ToolTip129
5.7图片类控件130
5.7.1PictureBox130
5.7.2ImageList130
5.8日期时间类控件132
5.8.1DateTimePicker132
5.8.2Timer?133
5.8.3Stopwatch对象?134
5.9其他控件?135
5.9.1WebBrowser135
5.9.2WindowsMediaPlayer?136
5.9.3PropertyGrid137
5.9.4FileSystemWatcher139
5.10表格控件DataGridView141
5.10.1显示Access数据库中的查询结果141
5.10.2显示DataTable对象中的数据?143
5.10.3处理选中的行?144
5.10.4导出DataGridView数据到Excel?145
5.11列表控件ListView146
5.11.1显示ADODB查询Access的结果148
5.11.2处理选中的行?149
5.11.3导出ListView数据到Excel150
5.12树状控件TreeView?151
5.12.1节点的添加和移除?152
5.12.2处理选中的节点154
5.12.3节点的遍历154
5.13选项卡控件TabControl155
5.13.1编辑选项卡155
5.13.2处理选中的选项卡?156
5.13.3显示和隐藏选项卡?157
5.13.4动态增删选项卡158
5.13.5遍历选项卡158
5.14图表控件Chart159
5.14.1图表的数据源?160
5.14.2图表的标题164
5.14.3图表的图例165
5.14.4数据系列166
5.14.5图表区域167
5.15小结?169
第6章VB.NETGDI+编程基础170
6.1图形对象?170
6.1.1绘图方法171
6.1.2坐标系?171
6.2结构数组?172
6.2.1画笔172
6.2.2画刷173
6.2.3点和点数组?173
6.2.4矩形框和矩形框数组?173
6.3绘图实例分析?174
6.3.1直线、多义线、多边形的绘制174
6.3.2矩形的绘制?175
6.3.3椭圆、弧线、扇形的绘制?176
6.3.4实心填充图形的绘制?177
6.3.5文字的绘制?178
6.3.6利用Paint事件自动重绘?179
6.4坐标系变换180
6.4.1坐标系平移?180
6.4.2坐标系旋转?181
6.4.3坐标系缩放?181
6.5小结?182
第7章VB.NET进阶技术183
7.1使用StringBuilder183
7.1.1追加字符串?184
7.1.2插入、移除和替换操作185
7.2使用字典?186
7.2.1利用字典去除重复项?186
7.2.2利用字典实现查询功能187
7.2.3字典的遍历?188
7.3使用哈希表189
7.3.1添加和移除键值对189
7.3.2遍历键值对?190
7.4使用正则表达式190
7.4.1验证191
7.4.2查找192
7.4.3替换193
7.4.4分隔194
7.4.5正则表达式选项?194
7.4.6直接使用正则表达式?195
7.4.7分组196
7.5目录和文件操作197
7.5.1使用DriveInfo获取 磁盘驱动器
7.5.2使用Directory.GetDirectories获取子文件夹199
7.5.3使用Directory.GetFiles获取文件夹下所有文件200
7.5.4使用DirectoryInfo获取文件夹信息200
7.5.5使用FileInfo获取文件信息?200
7.5.6使用Path进行路径操作?201
7.5.7Directory类的方法201
7.5.8File类的方法?202
7.6文本文件的读写202
7.6.1读取文件内容202
7.6.2写入和追加内容到文本文件204
7.6.3使用StreamWriter和StreamReader读写文本文件204
7.7MD5加密205
7.7.1字符串的 MD5加密 206
7.7.2文件的MD5计算?206
7.8GUID的生成207
7.9XML文件的读写?208
7.9.1使用XMLWriter创建XML文件?209
7.9.2使用XMLReader读取XML内容?211
7.9.3使用XMLDOM创建XML?211
7.9.4使用XMLDOM读取XML文件?213
7.10使用 API函数 ?213
7.10.1API函数的声明214
7.10.2API结构类型的声明214
7.10.3API常量的声明215
7.10.4句柄、类名和标题?215
7.10.5修改窗口和控件的文字?216
7.11发送邮件218
7.11.1启用邮箱的SMTP服务?218
7.11.2使用CDO?219
7.11.3使用Net.Mail?221
7.12读写注册表?223
7.12.1认识注册表的结构?223
7.12.2RegistryKey对象?224
7.12.3打开子项225
7.12.4获取所有键值信息?227
7.12.5获取所有子项?227
7.12.6创建子项229
7.12.7修改和删除键值229
7.12.8删除子项230
7.13操作进程230
7.13.1创建进程231
7.13.2查看进程232
7.13.3结束进程233
7.13.4进程退出事件?234
7.14类库项目的创建和调用234
7.14.1被VB.NET程序调用的类库项目235
7.14.2被VBA程序调用的类库项目239
7.15小结?243
第8章VB.NET操作Office对象244
8.1操作Excel应用程序对象?244
8.1.1获取正在运行的Excel245
8.1.2创建Excel应用程序对象246
8.1.3调用Excel工作表函数?247
8.1.4调用VBA中的过程和函数247
8.1.5使用单元格选择对话框248
8.2操作Excel工作簿248
8.2.1工作簿的新建和保存?248
8.2.2工作簿的打开和关闭?249
8.3操作Excel工作表249
8.3.1工作表的插入和删除?249
8.3.2工作表的移动和复制?250
8.4操作Excel单元格250
8.4.1单元格的遍历250
8.4.2单元格接收一维数组?251
8.4.3单元格接收二维数组?251
8.4.4数组接收单元格?252
8.5处理Excel中的事件?253
8.5.1使用WithEvents创建Excel事件253
8.5.2使用AddHandler和RemoveHandler处理Excel事件254
8.6操作其他Office对象257
8.6.1自定义Office工具栏?257
8.6.2文件选择对话框?259
8.6.3操作VBE?261
8.7ADO.NET操作Access数据库?263
8.7.1连接数据库?264
8.7.2增加记录265
8.7.3删除记录267
8.7.4更新记录267
8.7.5返回标量Select查询267
8.7.6遍历结果记录集?267
8.7.7生成DataTable对象268
8.7.8断开数据库?269
8.8小结?270
第9章VSTO外接程序?271
9.1VSTO外接程序与COM加载项?271
9.2开发环境配置?272
9.3Office主互操作程序集273
9.3.1PIA的副本?273
9.3.2添加其他Office组件的引用275
9.4创建VSTO外接程序项目276
9.5外接程序项目的调试279
9.6VisualStudio2010ToolsforOfficeRuntime?282
9.7VSTO外接程序项目中的引用和命名空间?283
9.7.1Excel对象类型283
9.7.2自定义Office界面方面的命名空间286
9.7.3Excel的VSTO对象类型287
9.7.4Office对象类型288
9.8COM加载项与注册表的关系289
9.9访问宿主应用程序的对象291
9.9.1调用VBA中的过程和函数292
9.9.2自动断开COM加载项?292
9.10VBA调用VSTO中的过程和函数292
9.11外接程序项目允许包含的内容?294
9.12小结?294
第10章使用功能区可视化设计器?295
10.1可视化设计器的基本用法?295
10.1.1在内置选项卡中定制296
10.1.2自定义新选项卡300
10.1.3Group中加入DialogBoxLauncher302
10.2可视化设计器的文件构成?303
10.2.1查看可视化设计器源文件304
10.2.2限制控件标题的自动换行305
10.2.3可视化设计器的事件文件306
10.3可视化设计器对象模型306
10.3.1OfficeMenu307
10.3.2功能区控件309
10.3.3Button309
10.3.4通用属性310
10.3.5EditBox310
10.3.6CheckBox和ToggleButton?311
10.3.7ComboBox和DropDown?312
10.3.8Gallery?314
10.3.9Menu、SplitButton和Separator?316
10.4CreateRibbonExtensibilityObject函数317
10.4.1选择性加载指定的可视化设计器?318
10.4.2使用代码自动添加和移除功能区控件319
10.5操作运行时的可视化设计器323
10.5.1利用IRibbonUI对象激活选项卡?323
10.5.2遍历和读写功能区控件?323
10.6修改可视化设计器的默认模板?324
10.6.1内置选项卡改为自定义选项卡?325
10.6.2移除默认的Group1326
10.7小结?326
第11章使用XML实现customUI327
11.1RibbonXML概述?327
11.1.1可以定制的场所328
11.1.2使用方式?328
11.2VSTO项目中实现RibbonXML329
11.2.1创建Ribbon类?329
11.2.2重写CreateRibbonExtensibility-Object函数?330
11.3GetCustomUI函数330
11.3.1RibbonID参数331
11.3.2回调函数?333
11.3.3IRibbonUI对象?334
11.3.4RibbonXML代码的返回方式335
11.4RibbonXML设计实例分步讲解?336
11.4.1使用类创建Ribbon接口336
11.4.2回调函数的查询340
11.4.3使用VisualStudio的XML编辑器341
11.4.4使用外部XML文件?344
11.4.5动态生成XML代码?346
11.5其他控件和回调处理?348
11.5.1处理以on开头的回调函数348
11.5.2处理以get开头的回调函数351
11.6使用自定义图标?354
11.6.1loadImage-image354
11.6.2getImage?358
11.7小结363
第12章自定义任务窗格?364
12.1创建任务窗格364
12.2处理任务窗格的可见性367
12.3处理任务窗格的停靠位置?368
12.4任务窗格操作Office对象?369
12.5使用任务窗格的事件?370
12.5.1任务窗格的可见性同步customUI控件370
12.5.2通过任务窗格的停靠位置改变控件布局373
12.6处理新窗口的任务窗格375
12.7任务窗格中加入WPF用户控件?379
12.8小结?384
第13章VSTO开发项目实战385
13.1Excel外接程序开发:数组公式的自动扩展386
13.2Word外接程序开发:表格内容自动汇总工具389
13.3PowerPoint外接程序开发:幻灯片导出为图片391
13.4Outlook外接程序开发:来信自动执行任务395
13.5小结?398
第14章VSTO外接程序的打包与发布?399
14.1简单发布399
14.1.1从部署文件中获取安装信息?400
14.1.2写入注册信息?401
14.1.3删除注册信息?401
14.1.4使用VBA实现自动安装和卸载Office外接程序401
14.2使用InnoSetup制作安装包404
14.2.1iss脚本文件的构成404
14.2.2制作iss脚本文件405
14.2.3产品的安装和卸载?407
14.2.4使用iss模板文件408
14.3小结?409
第15章开发Office文档?410
15.1创建Excel工作簿项目?410
15.2使用Office事件?412
15.3添加customUI?414
15.4使用文档操作窗格416
15.5NamedRange宿主控件?419
15.6ListObject宿主控件423
15.7运行时动态增删宿主控件?428
15.8VSTO外接程序向工作表增删控件431
15.9Office文档的发布?433
15.10创建Word文档项目433
15.11文档上添加宿主控件?436
15.12小结439
第16章Office2003的VSTO开发440
16.1开发环境配置440
16.1.1Office2003的安装?440
16.1.2VisualStudio2008的安装441
16.1.3安装Office2003补丁?443
16.2Office2003外接程序?444
16.3Office2003文档自定义项?446
16.3.1Excel2003工作簿的开发446
16.3.2Word2003文档的开发450
16.4小结?452
第17章Excel-DNA开发入门453
17.1Excel-DNA入门概述?453
17.1.1Excel-DNA开发的意义和优势453
17.1.2Excel-DNA与VSTO的比较454
17.1.3认识Excel-DNA开发包454
17.1.4Excel-DNA的加载方式?455
17.2.NET程序的编译?456
17.2.1编译生成.exe可执行文件?458
17.2.2编译生成.dll动态链接库459
17.3使用记事本创建Excel-DNA项目?459
17.3.1dna文件的部署460
17.3.2dll文件的生成460
17.3.3xll文件的拷贝461
17.3.4功能测试461
17.4Excel-DNA项目的打包463
17.5小结?464
第18章Excel-DNA函数设计465
18.1自定义函数的属性修饰465
18.1.1更改函数的属性465
18.1.2更改函数参数属性?466
18.2函数的参数类型?468
18.2.1工作表的一行或者一列作为参数469
18.2.2工作表的矩形区域作为参数470
18.3函数的返回值类型471
18.3.1返回一维数组?471
18.3.2返回二维数组?472
18.4小结?473
第19章使用VisualStudio进行Excel-DNA开发?474
19.1创建Excel-DNA类库项目475
19.1.1添加ExcelDna.Integration引用475
19.1.2修改函数代码?477
19.1.3添加dna文件?477
19.1.4生成dll文件479
19.2ExcelVBA中调用Excel-DNA加载项中的函数和过程481
19.3Excel-DNA项目的启动和卸载事件482
19.4自定义函数和参数的智能感知设计484
19.4.1独立加载
19.4.2引用并打包ExcelDna.IntelliSense.dll486
19.5Excel-DNA项目的调试490
19.6Excel-DNA中使用customUI?493
19.6.1考虑Excel版本498
19.6.2使用自定义图标500
19.7Excel-DNA中使用任务窗格503
19.8Excel-DNA中使用Excel事件?506
19.9Excel-DNA中使用Office工具栏?510
19.10使用NuGet程序包管理器快速创建Excel-DNA项目515
19.10.1工作表标签右键菜单设计517
19.10.2排序功能设计?520
19.11小结523
第20章语言差异和转换技巧524
20.1VB.NET与VBA的语言差异?524
20.1.1My对象524
20.1.2Continue和自身赋值语句526
20.1.3字符串是对象?526
20.1.4不能使用默认属性?526
20.1.5调用过程、函数、对象的方法必须使用圆括号527
20.1.6窗体和控件的变化?527
20.1.7颜色的设置和获取?527
20.2VB.NET与C#的语言差异?529
20.2.1程序结构529
20.2.2命名空间的导入方式530
20.2.3数据类型关键字530
20.2.4变量、常量的声明方式?530
20.2.5过程、函数的声明和调用方式530
20.2.6类型转换方式?531
20.2.8逻辑运算符531
20.2.9字符串连接531
20.2.10条件选择结构?532
20.2.11循环结构?532
20.2.12数组的声明和元素的访问533
20.2.13特殊 字符串常量 的表达?533
20.2.14异常处理?533
20.2.15事件的动态增加和移除?534
20.3VBA代码如何转换为C#534
20.3.1补全VBA代码?534
20.3.2VBA改写C#的注意点?535
20.3.3ExcelVBA转C#?537
20.3.4OutlookVBA转C#538
20.4小结?539