《Excel专业开发 第2版》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:(美)布伦等著;王永等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2013
  • ISBN:9787121183133
  • 页数:765 页
图书介绍:本书基于Excel 2003及之后的版本和VSTO.NET 2008开发平台在第一版的基础上进行了较大的调整和更新,介绍了Excel专业应用程序开发的各种方法和技术。主要包括Excel各类应用程序的结构和开发方法;用户界面等的开发;自定义类与对象的程序设计;VBA程序的设计、错误处理、调试及性能优化;图表编程、数据处理、数据库开发,以及在Excel应用程序中控制其他程序的技术等内容。

第1章 绪论 1

1.1关于本书 1

1.2本书适合的读者群 1

1.3 Excel开发人员分类 2

1.4 Excel——应用程序的开发平台 3

1.4.1用作数据输入和输出表示层的工作表 3

1.4.2用作简单数据存储的工作表 4

1.4.3 VBA代码与用户窗体 4

1.4.4用作声明式编程语言的工作表 4

1.4.5 Excel对象模型 5

1.5本书结构 5

1.6本书案例 6

1.7支持的软件版本 6

1.8关于字体风格 7

1.9关于配套资源 7

1.10帮助与支持 8

1.11专业Excel开发网站 8

1.12读者反馈 9

第2章 应用程序的结构 10

2.1基本概念 10

2.1.1无编码的应用程序 10

2.1.2自动化工作簿 11

2.1.3通用加载宏 12

2.1.4特定程序中的加载宏 14

2.1.5独立式应用程序 15

2.1.6可用的技术 17

2.2本章小结 17

第3章Excel与VBA开发的最佳惯例 19

3.1命名规则 19

3.1.1一个命名规则惯例 20

3.1.2命名规则惯例 23

3.1.3过程 24

3.1.4模块、类和用户窗体 25

3.1.5工作表和图表 25

3.1.6 Visual Basic工程 26

3.1.7 Excel用户接口的命名规则 26

3.1.8不必使用命名规则的特殊情况 27

3.2关于程序结构与组织的最佳惯例 28

3.2.1应用程序的结构 28

3.2.2过程化应用程序的组织 29

3.3一般性应用程序开发的最佳惯例 31

3.3.1代码注释 31

3.3.2代码的可读性 34

3.3.3通用的VBA编程惯例 35

3.3.4修改控制 44

3.4本章小结 45

第4章 工作表设计 46

4.1工作表用户接口设计的原则 46

4.2程序行和程序列:用户接口设计的基本技术 47

4.3预定义名称 47

4.3.1命名常量 48

4.3.2命名区域 48

4.3.3命名公式 50

4.3.4预定义名称的作用范围 51

4.4样式 52

4.4.1创建和使用样式 52

4.4.2修改样式 54

4.4.3在工具栏中添加样式下拉框 54

4.5用户接口中的画图技术 55

4.5.1使用边框创建特殊效果 55

4.5.2创建具有良好格式的表格 55

4.5.3显示帮助文本的单元格批注 56

4.5.4使用图形 57

4.6数据检验 58

4.6.1数据的唯一性检验 58

4.6.2级联列表 59

4.7条件格式 60

4.7.1创建动态表 60

4.7.2警示错误 62

4.8在工作表中使用控件 64

4.8.1窗体控件的优点 65

4.8.2 Active控件的优点 65

4.9实例分析 65

4.9.1隐藏行和列 66

4.9.2预定义名称 67

4.9.3样式 67

4.9.4用户接口的绘图技术 67

4.9.5数据检验 68

4.9.6条件格式 68

4.10本章小结 69

第5章 函数、通用加载宏和特定应用的加载宏 70

5.1应用程序的四个阶段 70

5.1.1开发与维护 70

5.1.2启动 71

5.1.3运行 71

5.1.4关闭 72

5.2函数库加载宏 72

5.2.1用户自定义函数(UDF)示例 72

5.2.2 UDF的命名规则 73

5.2.3让UDF看起来更像内部函数 73

5.2.4为函数库加载宏创建友好的名称和描述信息 75

5.2.5关于UDF的一些重要细节 76

5.2.6 VBA UDF问题 76

5.3通用加载宏 76

5.4特定应用的加载宏 77

5.4.1使用表驱动的方法管理工作表用户接口(UI) 77

5.4.2使用VBA动态修改用户接口工作表 81

5.5实例分析 81

5.5.1功能特性 81

5.5.2应用程序的组织 91

5.6本章小结 91

第6章 独立式应用程序 92

6.1独立式应用程序的结构 92

6.1.1启动与关闭 93

6.1.2自定义用户界面 99

6.1.3处理与分析 103

6.1.4显示结果 104

6.2实例分析 104

6.2.1 PETRAS报表 104

6.3本章小结 109

第7章 使用类模块创建对象 110

7.1创建对象 110

7.1.1类模块的结构 112

7.2创建集合 113

7.2.1创建集合对象 115

7.2.2用地址表示类集合的不足 117

7.3捕获事件 118

7.4引发事件 120

7.4.1家庭关系问题 122

7.4.2创建触发类 124

7.5实例分析 126

7.5.1 PETRAS时刻表 126

7.5.2 PETRAS报表 130

7.6本章小结 131

第8章 应用程序的结构 132

8.1命令栏设计 132

8.2表驱动命令栏 133

8.2.1表驱动命令栏构建器简介 133

8.2.2命令栏定义表 134

8.2.3小结 146

8.3综合应用示例 146

8.3.1在工作表菜单栏中添加带子菜单的自定义菜单 147

8.3.2添加自定义工具条 149

8.3.3添加自定义右击命令栏 151

8.4从文件中导入自定义图标 152

8.4.1创建用于图标和掩码的位图文件 153

8.4.2将位图文件作为命令栏按钮的图标 154

8.5使用钩子截获命令栏控件事件 155

8.5.1为什么要使用事件钩子 155

8.5.2事件钩子的用途 155

8.5.3 Tag属性的重要性 156

8.5.4选择性粘贴命令栏 157

8.6实例分析 161

8.6.1 PETRAS时刻表 161

8.6.2 PETRAS报表 163

8.6.3应用程序的环境 163

8.6本章小结 166

第9章XML介绍 167

9.1 XML 167

9.1.1 XML文件示例 168

9.1.2 XSD文件示例 169

9.1.3 Excel 2003的XML特性概述 171

9.1.4一个简单的金融模型 172

9.1.5创建XML架构定义文件 173

9.1.6 XML映射 174

9.1.7导出和导入XML数据 176

9.1.8 XML对象模型和事件 177

9.1.9早期版本中的XML支持 181

9.1.10使用命名空间 182

9.2本章小结 183

第10章Office 2007 Ribbon用户界面 184

10.1 RibbonX范式 184

10.2 Office 2007 Open XML文件格式介绍 185

10.2.1 Open XML文件格式的结构 185

10.3 Ribbon设计和编码的最佳惯例 187

10.3.1支持工作流程的设计 187

10.3.2使用加载项选项卡 188

10.3.3在多个加载项之间共享自定义的选项卡和组 188

10.3.4 keytip属性 192

10.3.5管理控件的自定义图标 192

10.3.6使用全局回调处理器 193

10.3.7无效处理 194

10.4表驱动的Ribbon UI自定义 196

10.4.1访问customUI XML中的部件 196

10.5需要解决的高级问题 197

10.5.1为独立式应用程序创建Ribbon UI 197

10.5.2隐藏Ribbon UI 199

10.5.3确定组合框、下拉框和编辑框控件的大小 200

10.5.4工作表导航 200

10.5.5使用模板 203

10.6进阶阅读 203

10.6.1 RibbonX:自定义Offiice 2007 Ribbon 203

10.7相关网站 203

10.7.1 Offiice开发人员网站中的XML 203

10.7.2 OpenXMLDeveloper.org 204

10.7.3 Office良好用户界面开发人员门户网站 204

10.8本章小结 204

第11章 创建跨版本兼容的应用程序 205

11.1单个应用程序中的命令栏和Ribbon用户界面 205

11.1.1轻量级方法 205

11.1.2重量级方法 208

11.1.3提取命令栏的处理逻辑 208

11.1.4创建Ribbon用户界面加载器 211

11.1.5其他注意事项 216

11.2 Excel 2007开发的其他问题 216

11.2.1无法将代码添加到无宏的Excel文件 216

11.2.2使用文件系统 217

11.3 Windows vista的安全和文件夹结构 222

11.3.1用户账户控制(UAC) 222

11.3.2标准用户账户 223

11.3.3公共配置文件 224

11.3.4分清Windows XP和Windows Vista 224

11.4本章小结 224

第12章 理解和使用Windows API调用 225

12.1概述 225

12.1.1查找文档 226

12.1.2查找声明 226

12.1.3查找常量的值 226

12.1.4理解句柄 227

12.1.5封装API调用 228

12.2与屏幕相关的操作 229

12.21读取屏幕分辨率 230

12.2.2查看像素的尺寸 230

12.2.3设备上下文(device context) 230

12.3与窗口相关的操作 232

12.3.1窗口类 232

12.3.2获取窗口 233

12.3.3 ANSI编码与Unicode编码的比较和Alias子句 233

12.3.4查找相关的窗口 234

12.3.5窗口消息 236

12.3.6更改窗口的图标 237

12.3.7改变窗体的样式 238

12.4与键盘相关的操作 238

12.4.1检验Shift键,Ctrl键,Alt键,Caps Lock键,Num Lock键和Scroll Lock键的状态 239

12.4.2检测某个键是否被按下 240

12.5与文件系统和网络相关的操作 242

12.5.1查找用户ID 243

12.5.2改变UNC路径 244

12.5.3查找指定的文件夹 244

12.5.4将文件删除到回收站中 246

12.5.5浏览文件夹 247

12.6实例分析 253

12.6.1 PETRAS时刻表 253

12.6.2 PETRAS报表 254

12.7本章小结 255

第13章 用户窗体设计与范例 256

13.1基本原则 256

13.1.1简单化 256

13.1.2显示界面,而非业务规则 256

13.1.3使用类,而非默认实例 259

13.1.4提供属性和方法,而非控件 261

13.2控件基础 263

13.2.1命名 263

13.2.2分层 263

13.2.3位置 263

13.2.4 Tab次序和加速键 264

13.2.5数据绑定 264

13.2.6事件处理 264

13.2.7验证 266

13.3可视效果 269

13.3.1用户窗体的窗口样式 269

13.3.2使关闭按钮不可用 272

13.3.3在用户窗体上显示图形、图表和艺术字等 272

13.3.4锁定与禁用控件 273

13.3.5弹出式菜单 274

13.4用户窗体的位置和尺寸 275

13.4.1靠近单元格 275

13.4.2响应不同的分辨率 276

13.4.3可调整尺寸的用户窗体 277

13.4.4分隔栏 278

13.5向导 280

13.5.1向导对话框的设计规则 280

13.5.2创建一个向导对话框 281

13.6动态窗体 282

13.6.1用户窗体中的控件子集 283

13.6.2代码创建和表驱动的窗体 283

13.6.3滚动区域 286

13.6.4动态控件的事件处理和控件数组 286

13.7无模式用户窗体 289

13.7.1闪屏 289

13.7.2进度条 290

13.7.3与菜单项组合在一起 291

13.8特殊控件 293

13.8.1组合框 293

13.8.2 Windows通用控件 296

13.9实例分析 297

13.9.1 PETRAS时刻表 297

13.9.2 PETRAS报表 297

13.10结论 298

第14章 接口 299

14.1什么是接口 299

14.2代码重用 300

14.3定义自定义接口 302

14.4自定义接口的实现 303

14.5自定义接口的使用 304

14.6多态性 305

14.7提高健壮性 309

14.8简化开发 309

14.8.1进度条 310

14.8.2 CProgressBar类 314

14.9插件架构 318

14.10实例分析 319

14.10.1 PETRAS时刻表 319

14.10.2 PETRAS报表 319

14.11本章小结 319

第15章VBA错误处理 321

15.1错误处理的概念 321

15.1.1未处理错误与已处理错误的比较 321

15.1.2 Err对象 321

15.1.3何为错误处理器 322

15.1.4错误处理器的作用域 323

15.1.5 On Error语句 324

15.1.6 Resume语句 326

15.1.7产生自定义错误 327

15.2单个退出点原则 327

15.3简单错误处理 328

15.4复杂错误处理器的结构 328

15.4.1过程错误处理器 329

15.4.2不重要的过程 331

15.5中央错误处理器 332

15.6类和用户窗体中的错误处理 337

15.6.1 Initialize和Activate事件 337

15.6.2 Terminate事件 338

15.7把它们结合在一起 338

15.8实例分析 343

15.8.1 PETRAS时刻表 343

15.8.2 PETRAS报表应用程序 345

15.9本章小结 350

第16章VBA调试 351

16.1基本的VBA调试技术 351

16.1.1运行模式和中断模式 351

16.1.2调试模式 352

16.1.3使用断点(F9) 355

16.1.4单步执行代码 355

16.1.5改变执行点或设置下一条语句(Ctrl+F9) 357

16.2立即窗口(Ctrl+G) 358

16.2.1 Debug.Print 358

16.2.2充分利用立即窗口 359

16.3调用堆栈(Ctrl+L) 360

16.4监视窗口 361

16.4.1设置基本的监视 361

16.4.2使用基本的监视 362

16.4.3监视类型 363

16.4.4监视窗口中的数组、用户自定义类型(UDT)和类 365

16.4.5快速监视(Shift+F9) 367

16.5本地窗口 367

16.6对象浏览器(F2) 368

16.6.1基本特征 369

16.6.2高级特征 369

16.7创建和运行“测试桩” 370

16.8使用断言 372

16.9程序开发者应当知道的调试快捷键 373

16.9.1一般情况 373

16.9.2调试模式的代码执行 374

16.9.3导航 374

16.9.4信息 375

16.10本章小结 375

第17章 优化VBA的性能 376

17.1测量性能 376

17.2 PerfMon实用工具 377

17.3创造性思维 380

17.3.1做拼图游戏 380

17.3.2确定步骤 380

17.3.3站在盒子外思考 380

17.3.4打破规则 382

17.3.5了解数据 382

17.3.6提出问题 383

17.3.7了解工具 383

17.4宏观上的优化 383

17.4.1预处理 384

17.4.2检查阶数 384

17.4.3收紧循环 386

17.4.4快速VBA算法 386

17.5在微观上的优化 391

17.5.1 VBA 392

17.5.2 Excel 394

17.6结论 396

第18章 数据库开发简介 398

18.1数据库简介 398

18.1.1为什么使用数据库 398

18.1.2关系数据库 399

18.1.3基于文件的数据库和客户机-服务器数据库 399

18.1.4规范化 399

18.1.5什么时候不必规范化 404

18.1.6关系与参照完整性 404

18.1.7固有的主关键字和人为的主关键字 407

18.2 SQL简介 408

18.2.1 SELECT语句 408

18.2.2 INSERT语句 409

18.2.3 UPDATE语句 410

18.2.4 DELETE语句 410

18.3用ADO进行数据存取 411

18.3.1 ActiveX Data Object(ADO)简介 411

18.3.2 ADO对象模型 411

18.4进阶阅读 420

18.5本章小结 421

第19章Access和SQL Sever数据库编程 422

19.1 Northwind示例数据库的说明 422

19.2设计数据访问层 423

19.2.1为什么需要有一个单独的数据访问层 423

19.2.2数据访问层的物理设计 423

19.3使用Microsoft Access数据库 426

19.3.1连接到Access数据库 426

19.3.2使用连接字符串 427

19.3.3 Microsoft Access的数据访问技术 427

19.4使用Microsoft SQL Server数据库 433

19.4.1连接到SQL Server数据库 433

19.4.2连接池 434

19.4.3错误处理连接 435

19.4.4 SQL Server的数据访问 436

19.4.5参数刷新 438

19.4.6多个记录集 438

19.4.7断开连接的记录集 440

19.5从Access升迁到SQL Server 441

19.6进阶阅读 444

19.7实例分析 444

19.7.1 PETRAS时刻表 445

19.7.2 PETRAS报表 451

19.8本章小结 452

第20章 数据处理技术 453

20.1 Excel的数据结构 453

20.1.1非结构化区域 453

20.1.2结构化区域 454

20.1.3 Excel 2003的列表 455

20.1.4查询表 455

20.2数据处理功能 457

20.2.1处理的不仅仅是数据 457

20.2.2数据透视表缓存 458

20.2.3数据透视表 458

20.2.4数据合并 461

20.2.5高级筛选 462

20.3高级函数 465

20.3.1数据库函数 465

20.3.2数组公式 466

20.3.3循环引用 469

20.4本章小结 470

第21章 高级图表技术 471

21.1基本技术 471

21.1.1组合图表类型 471

21.1.2使用多个坐标轴 473

21.1.3使用预定义名称来建立图表与数据的连接 473

21.1.4伪造它 479

21.2 VBA技术 481

21.2.1在图表坐标系之间进行转换 481

21.2.2定位图表中的元素 483

21.2.3计算合理的坐标比例 484

21.3本章小结 485

第22章 控制其他Office应用程序 486

22.1基本原理 486

22.1.1自动化 486

22.1.2引用 487

22.1.3开发中的技巧 487

22.1.4 vTable表、早期绑定和后期绑定 489

22.1.5处理应用程序实例 491

22.1.6性能分析 496

22.2主要Office程序的对象模型 498

22.2.1 Access和数据存取对象 498

22.2.2 Word应用程序 500

22.2.3 PowerPoint和MSGraph 502

22.2.4 Outlook 505

22.2.5进阶阅读 508

22.3实例分析 509

22.4本章小结 509

第23章Excel和Visual Basic 6 510

23.1创建Hello World ActiveX DLL 510

23.1.1创建ActiveX DLL工程 511

23.1.2最简单的单向通信程序 512

23.1.3更复杂一些的双向通信程序 514

23.1.4在Excel显示VB6窗体 517

23.2为什么要在Excel VBA工程中使用VB6 ActiveX DLL 521

23.2.1代码保护功能 521

23.2.2利用VB6窗体 521

23.2.3更好的ActiveX控件支持 522

23.2.4更好地支持面向对象程序设计 527

23.2.5资源文件 530

23.2.6 VB6的其他特性 530

23.3进程内通信与进程外通信 530

23.3.1进程内通信 530

23.3.2进程外通信 531

23.4在VB6 EXE程序中自动化Excel 531

23.4.1一个Excel自动化的简单程序 531

23.4.2使用VB6 EXE作为Excel应用程序的加载器 536

23.5 COM外接程序 536

23.6 “Hello World” COM外接程序 537

23.7加载设计器 539

23.7.1通用页 540

23.7.2高级页 541

23.8安装注意事项 541

23.9 AddinInstance事件 542

23.9.1 Initialize 543

23.9.2 OnConnection 543

23.9.3 OnStartupComplete 544

23.9.4 OnAddInsUpdate 544

23.9.5 OnBeginShutdown 544

23.9.6 OnDisconnection 544

23.9.7 Terminate 544

23.10命令栏的处理 545

23.10.1使用命令栏事件钩子 545

23.10.2命令栏的结构 545

23.10.3自定义工具栏的外观 546

23.10.4选择性粘贴栏的COM外接程序 546

23.11为什么要使用COM外接程序 547

23.11.1提高代码安全 547

23.11.2 COM外接程序能够与多个应用程序通信 547

23.11.3使用独立线程 548

23.12自动化外接程序集合 548

23.12.1创建IfError的自动化外接程序 548

23.12.2使用IfError自动化外接程序 549

23.12.3在自动化外接程序中访问Excel应用程序对象 549

23.13实例分析 550

23.13.1在ActiveX DLL中利用资源文件加载图标 550

23.13.2使用标准EYE程序作为Excel应用程序的加载器 554

23.14本章小结 559

第24章EXCEL和VB.NET 560

24.1.NET Framework基础 561

24.2 Visual Basic.NET 562

24.2.1 Visual Studio的IDE环境 563

24.2.2创建一个VB.NET解决方案 565

24.2.3结构化的异常处理 569

24.2.4模块和方法,范围和可见性 572

24.2.5变量声明与赋值 572

24.2.6创建新的对象实例 573

24.2.7使用ByVal或ByRef 575

24.2.8在VB.NET中使用向导 575

24.2.9在VB.NET的数据类型 575

24.2.10在VB.NET中使用数组 576

24.3调试 580

24.3.1设置键盘快捷键 580

24.3.2启用非托管代码的调试 581

24.3.3异常调试助手 581

24.3.4对象浏览器(F2) 582

24.3.5错误列表窗口(Ctrl+W Ctrl+E) 582

24.3.6命令窗口(Ctrl+Alt+A)和立即窗口(Ctrl+G) 582

24.3.7输出窗口(Ctrl+Alt+O) 583

24.3.8断点(Ctrl+Alt+B) 583

24.3.9调用栈(Ctrl+L) 584

24.3.10快速监视和监视窗口 584

24.3.11异常对话框(Ctrl+Alt+E) 584

24.3.12条件编译常数 585

24.3.13使用断言 586

24.4有用的开发工具 586

24.4.1代码区域 586

24.4.2代码段管理器(Ctrl+K Ctrl+B) 586

24.4.3将文件作为文本插入 587

24.4.4任务列表(Ctrl+Alt+K) 587

24.5 Excel自动操作 588

24.5.1主互操作程序集(PIA) 588

24.5.2在NET解决方案中使用Excel 589

24.5.3使用后期绑定 593

24.6.NET解决方案的资源 593

24.7用ADO.NET获取数据 594

24.8进阶阅读 598

24.8.1 Programming Microsoft Visual Basic.NET Version 2003 598

24.8.2 Visual Basic 2008 Programmer’s Reference(Visual Basic 2008程序员手册) 599

24.9其他开发工具 599

24.9.1 MZ-tools 599

24.9.2 VSNETCodePrint 599

24.10 Q&A论坛 599

24.11实例分析——PETRAS Report Tool.NET 599

24.11.1.NET解决方案 601

24.11.2 Windows窗体的Extender Providers 603

24.11.3线程 605

24.11.4获取数据 607

24.11.5导出数据 608

24.12本章小结 611

第25章 使用VB.NET编写托管COM外接程序 612

25.1选择开发工具集 612

25.2创建托管的COM外接程序 613

25.2.1剖析托管的COM外接程序 614

25.3构建用户界面 626

25.3.1命令栏用户接口的处理 626

25.3.2 Ribbon用户界面的处理 633

25.4创建托管的自动化外接程序 639

25.4.1创建与Excel应用程序对象交互的自动化外接程序 639

25.4.2为什么不应当使用.NET来创建自动化外接程序 643

25.5手工注册COM外接程序和卸载其注册信息 648

25.6在VB.NET中使用类 648

25.6.1创建设计良好的类 649

25.6.2属性 652

25.7使用ADO将数据导出到Excel 654

25.8对COM外接程序进行Shim处理 657

25.8.1 MSCoree.DLL地狱 657

25.8.2隔离 657

25.8.3安全 658

25.8.4 COM Shim向导 658

25.9相关的博客 663

25.9.1 XL-Dennis—VSTO&.NET&Excel 663

25.9.2 Andrew Whitechapel 664

25.10其他开发工具 664

25.10.1 Add-in Express for Microsoft Office and.NET 664

25.10.2 AddinSpy 664

25.11实例分析——PETRAS Report Tool.NET 664

25.11.1介绍 664

25.11.2加载和卸载COM外接程序 665

25.11.3自定义菜单 667

25.11.4在Excel中显示Windows窗体 670

25.12本章小结 671

第26章 使用Visual Studio的Office工具开发解决方案 672

26.1何为V STO 672

26.1.1 VSTO的项目模板 675

26.2应当何时使用VSTO 678

26.3使用VSTO外接程序 680

26.3.1创建我们的第一个VSTO外接程序 680

26.3.2 Ribbon可视设计器 687

26.3.3自定义任务窗格 689

26.3.4 VSTO自动化外接程序 695

26.4使用VSTO模板和工作簿的解决方案 695

26.4.1宿主元素和宿主控件 696

26.4.2 Windows窗体控件 697

26.4.3服务器端的VSTO解决方案 697

26.4.4创建第一个VSTO工作簿解决方案 698

26.4.5使用NamedRange宿主控件 699

26.4.6使用ListObject宿主控件 700

26.5部署与安全 702

26.5.1使用ClickOnce部署VSTO解决方案介绍 703

26.6进阶阅读 709

26.7相关的门户与博客 709

26.7.1微软的VSTO门户 709

26.8.2 Office Development with Visual Studio 709

26.8其他开发工具 709

26.8.1 Microsoft Visual Studio Tools for the Offiice System Power Tools 709

26.9本章小结 710

第27章XLL和C API函数 711

27.1为什么需要创建基于XLL的工作表函数 711

27.2在Visual Studio中创建XLL工程 711

27.3 XLL的结构 716

27.3.1函数表 716

27.3.2 DLLMain函数 719

27.3.3标准XLL回调函数 719

27.3.4其他XLL回调函数 721

27.4 XLOPER和OPER数据类型 722

27.5 Excel4函数 726

27.6常用的C API函数 727

27.6.1 xlFree 727

27.6.2 xlCoerce 728

27.6.3 xlGetName 728

27.7 XLOPER变量和内存管理 728

27.8自定义工作表函数的注册和取消 729

27.9函数应用举例 731

27.10工作表函数的调试 733

27.11其他相关问题 734

27.11.1 COM自动化用户应该注意的问题 734

27.11.2 C+++关键字与XLOPER定义的冲突 734

27.12其他学习资源 734

27.12.1 MSDN中的Exce12007 SDK 734

27.12.2 Financial Applications Using Excel Add-in Development in C/C+++ 735

27.12.3 Laurent Longre的网站(法语网站) 735

27.12.4微软的Excel公共新闻组 735

27.12.5 Planatech XLL+ 735

27.12.6 Keith Lewis的资源软件“Object-Oriented C+++Wrapper for the Excel C API” 735

27.12.7 Managed XLL 735

27.13本章小结 735

第28章Excel和Web服务 736

28.1 Web服务 736

28.1.1使用VB.NET创建Web服务 737

28.1.2从Excel使用Web服务 739

28.2实例分析 742

28.2.1 PETRAS Web服务 742

28.2.2 PETRAS Timesheet 746

28.3本章小结 749

第29章 帮助、安全、打包和发布 750

29.1为应用程序提供帮助 750

29.1.1概述 750

29.1.2开始设计帮助文件 751

29.1.3编写帮助内容 754

29.1.4在VBA中显示帮助 754

29.2安全 756

29.2.1 Excel的安全性 756

29.2.2检查网络分组 757

29.2.3宏安全与数字签名 758

29.2.4数字签名的替代方法 759

29.3打包 760

29.3.1安装位置 760

29.3.2安装要求 761

29.3.3安装方式 763

29.4发布 764

29.4.1初始版本 764

29.4.2升级 764

29.4.3实时升级 764

29.5本章小结 764