第1章 Excel编程与Python编程概述 1
1.1 关于Excel脚本编程 1
1.1.1 为什么要进行Excel脚本编程 1
1.1.2 选择VBA还是选择Python 2
1.2 使用Excel VBA编写程序 2
1.2.1 Excel VBA的编程环境 2
1.2.2 编写Excel VBA程序 4
1.3 使用Python编写程序 5
1.3.1 Python的特点 5
1.3.2 下载并安装Python 5
1.3.3 Python的编程环境 6
1.3.4 编写Python程序 7
1.4 编程规范 9
1.4.1 代码注释 9
1.4.2 代码续行 10
1.4.3 代码缩进 10
第2章 常量和变量 12
2.1 常量 12
2.1.1 Excel VBA常量 12
2.1.2 Python常量 13
2.2 变量及其操作 14
2.2.1 变量的命名 14
2.2.2 变量的声明 15
2.2.3 变量的赋值 16
2.2.4 链式赋值 18
2.2.5 系列解包赋值 18
2.2.6 交换变量的值 19
2.2.7 变量的清空或删除 19
2.2.8 Python对象的三要素 20
2.3 变量的数据类型 21
2.3.1 基本的数据类型 21
2.3.2 数据类型转换 23
2.4 数字 25
2.4.1 整型数字 25
2.4.2 浮点型数字 26
2.4.3 复数 27
2.4.4 类型转换的有关问题 28
2.4.5 Python的整数缓存机制 29
第3章 表达式 30
3.1 算术运算符 30
3.2 关系运算符 32
3.3 逻辑运算符 34
3.4 赋值运算符和算术赋值运算符 36
3.5 成员运算符 36
3.6 身份运算符 38
3.7 运算符的优先级 38
第4章 初识Excel对象模型 42
4.1 Excel对象模型 42
4.1.1 对象及相关概念 42
4.1.2 Excel对象及其层次结构 43
4.2 操作Excel对象模型的一般过程 44
4.2.1 使用Excel VBA操作Excel对象模型的一般过程 44
4.2.2 与Excel相关的Python包 45
4.2.3 xlwings包及其安装 46
4.2.4 使用xlwings包操作Excel对象模型的一般过程 47
4.3 与Excel对象模型有关的常用操作 49
4.3.1 获取文件的当前路径 49
4.3.2 对象的引用 50
4.3.3 获取末行行号:给参数指定常数值 51
4.3.4 扩展单元格区域 52
4.3.5 修改单元格区域的属性 53
第5章 流程控制 54
5.1 判断结构 54
5.1.1 单分支判断结构 54
5.1.2 二分支判断结构 55
5.1.3 多分支判断结构 56
5.1.4 有嵌套的判断结构 58
5.1.5 三元操作表达式 60
5.1.6 判断结构示例:判断是否为闰年 62
5.2 循环结构:for循环 64
5.2.1 for循环 64
5.2.2 嵌套for循环 66
5.2.3 Python中的for…else的用法 67
5.2.4 for循环示例:求给定数据的最大值和最小值 68
5.3 循环结构:while循环 69
5.3.1 简单while循环 70
5.3.2 Python中有分支的while循环 72
5.3.3 嵌套while循环 72
5.3.4 while循环示例:求给定数据的最大值和最小值 73
5.4 Excel VBA的其他结构 75
5.4.1 For Each…Next循环结构 75
5.4.2 Do循环结构 76
5.5 其他语句 77
5.5.1 Excel VBA中的其他语句 77
5.5.2 Python中的其他语句 78
第6章 字符串 80
6.1 创建字符串 80
6.1.1 直接创建字符串 80
6.1.2 通过转换类型创建字符串 83
6.1.3 字符串的长度 84
6.1.4 转义字符 84
6.2 字符串的索引和切片 86
6.2.1 字符串的索引 86
6.2.2 遍历字符串 87
6.2.3 字符串的切片 88
6.2.4 字符串的索引和切片示例:使用身份证号求年龄 89
6.3 字符串的格式化输出 91
6.3.1 实现字符串的格式化输出 91
6.3.2 字符串的格式化输出示例:数据保留4位小数 95
6.4 字符串的大小写 96
6.4.1 设置字符串的大小写 96
6.4.2 设置字符串的大小写示例:列数据统一大小写 98
6.5 字符串的分割和连接 99
6.5.1 字符串的分割 100
6.5.2 字符串的分割示例:分割物资规格 100
6.5.3 字符串的连接 102
6.5.4 字符串的连接示例:合并学生个人信息 104
6.6 字符串的查找和替换 105
6.6.1 字符串的查找 106
6.6.2 字符串的替换 107
6.6.3 字符串的查找和替换示例:提取省、市、县 108
6.6.4 字符串的查找和替换示例:统一列数据的单位 111
6.7 字符串的比较 113
6.7.1 使用关系运算符进行比较 113
6.7.2 使用函数进行比较 114
6.7.3 字符串的比较示例:找老乡 116
6.8 删除字符串两端的空格 119
6.9 Python中字符串的缓存机制 120
第7章 数组 122
7.1 Excel VBA中的数组 122
7.1.1 静态数组 122
7.1.2 常量数组 124
7.1.3 动态数组 125
7.1.4 数组元素的增、删、改 126
7.1.5 数组元素的去重 129
7.1.6 数组元素的排序 130
7.1.7 数组元素的计算 131
7.1.8 数组元素的拆分和合并 132
7.1.9 数组元素的过滤 133
7.1.10 创建二维数组 133
7.1.11 改变二维数组的大小 134
7.1.12 Excel工作表与数组交换数据 135
7.1.13 数组示例:给定数据的简单统计 142
7.1.14 数组示例:突出显示给定数据的重复值 143
7.1.15 数组示例:求大于某数的最小值 144
7.1.16 数组示例:创建杨辉三角 146
7.2 Python中的数组:列表 147
7.2.1 创建列表 147
7.2.2 索引和切片 151
7.2.3 添加列表元素 152
7.2.4 插入列表元素 153
7.2.5 删除列表元素 154
7.2.6 列表元素的去重 154
7.2.7 列表元素的排序 155
7.2.8 列表元素的计算 155
7.2.9 列表的拆分和合并 156
7.2.10 列表的过滤 156
7.2.11 二维列表 157
7.2.12 Excel工作表与列表交换数据 158
7.2.13 数组示例:给定数据的简单统计 160
7.2.14 数组示例:突出显示给定数据的重复值 161
7.2.15 数组示例:求大于某数的最小值 162
7.2.16 数组示例:创建杨辉三角 163
7.3 Python中的数组:元组 164
7.3.1 元组的创建和删除 164
7.3.2 元组的索引和切片 165
7.3.3 基本运算和操作 166
7.4 Python中的数组:NumPy数组 167
7.4.1 NumPy包及其安装 167
7.4.2 创建NumPy数组 168
7.4.3 NumPy数组的索引和切片 170
7.4.4 NumPy数组的计算 171
7.4.5 Excel工作表与NumPy数组交换数据 174
7.5 Python中带索引的数组:Series和DataFrame 175
7.5.1 pandas包及其安装 175
7.5.2 pandas Series 176
7.5.3 pandas DataFrame 180
7.5.4 Excel与pandas交换数据 187
第8章 字典 191
8.1 字典的创建 191
8.1.1 创建字典对象 191
8.1.2 Excel VBA中后期绑定与前期绑定的比较 193
8.1.3 Python中更多创建字典的方法 195
8.2 字典元素的索引 196
8.2.1 获取键和值 196
8.2.2 键在字典中是否存在 199
8.3 字典元素的增、删、改 200
8.3.1 增加字典元素 200
8.3.2 修改键和值 201
8.3.3 删除字典元素 202
8.4 字典数据的读/写 202
8.4.1 字典数据的格式化输出 202
8.4.2 Excel工作表与字典之间的数据读/写 204
8.5 字典应用示例 207
8.5.1 应用示例1:汇总多行数据中唯一值出现的次数 207
8.5.2 应用示例2:汇总球员奖项 209
8.5.3 应用示例3:汇总研究课题的子课题 212
第9章 集合 215
9.1 集合的相关概念 215
9.1.1 集合的概念 215
9.1.2 集合运算 215
9.2 集合的创建和修改 216
9.2.1 创建集合 216
9.2.2 集合元素的添加和删除 217
9.3 集合运算 218
9.3.1 交集运算 218
9.3.2 并集运算 220
9.3.3 差集运算 221
9.3.4 对称差集运算 223
9.3.5 子集和超集运算 225
9.4 集合应用示例 227
9.4.1 应用示例1:统计参加兴趣班的所有学生 227
9.4.2 应用示例2:跨表去重 229
9.4.3 应用示例3:找出报和没有报两个兴趣班的学生 232
第10章 函数 235
10.1 内部函数 235
10.1.1 常见的内部函数 235
10.1.2 Python标准模块函数 238
10.2 第三方库函数 241
10.3 自定义函数 243
10.3.1 函数的定义和调用 243
10.3.2 有多个返回值的情况 246
10.3.3 可选参数和默认参数 248
10.3.4 可变参数 250
10.3.5 参数为字典 251
10.3.6 传值还是传址 253
10.4 变量的作用范围和生存期 254
10.4.1 变量的作用范围 255
10.4.2 变量的生存期和Excel VBA中的静态变量 256
10.5 Python中的匿名函数 257
10.6 函数应用示例 258
10.6.1 应用示例1:计算圆环的面积 258
10.6.2 应用示例2:递归计算阶乘 260
10.6.3 应用示例3:删除字符串中的数字 262
第11章 模块与工程 265
11.1 模块 265
11.1.1 内置模块和第三方模块 265
11.1.2 函数式自定义模块 265
11.1.3 脚本式自定义模块 267
11.1.4 类模块 267
11.1.5 窗体模块 267
11.2 工程 268
11.2.1 使用内置模块和第三方模块 268
11.2.2 使用其他自定义模块 269
第12章 调试与异常处理 271
12.1 Excel VBA中的调试 271
12.1.1 输入错误的调试 271
12.1.2 运行时错误的调试 272
12.1.3 逻辑错误的调试 272
12.2 Python中的异常处理 274
12.2.1 常见异常 274
12.2.2 异常捕获:单分支的情况 275
12.2.3 异常捕获:多分支的情况 276
12.2.4 异常捕获:try…except…else… 277
12.2.5 异常捕获:try…finally… 277
第13章 深入Excel对象模型 279
13.1 Excel对象模型概述 279
13.1.1 关于Excel对象模型的更多内容 279
13.1.2 Python xlwings的两种编程方式 279
13.2 Excel应用对象 280
13.2.1 Application对象 280
13.2.2 位置、大小、标题、可见性和状态属性 282
13.2.3 其他常用属性 283
13.3 工作簿对象 285
13.3.1 创建和打开工作簿 285
13.3.2 引用、激活、保存和关闭工作簿 287
13.4 工作表对象 290
13.4.1 相关对象 290
13.4.2 创建和引用工作表 291
13.4.3 激活、复制、移动和删除工作表 295
13.4.4 隐藏和显示工作表 297
13.4.5 选择行和列 299
13.4.6 复制/剪切行和列 301
13.4.7 插入行和列 303
13.4.8 删除行和列 306
13.4.9 设置行高和列宽 307
13.5 单元格对象 309
13.5.1 引用单元格 309
13.5.2 引用整行和整列 312
13.5.3 引用区域 314
13.5.4 引用所有单元格、特殊区域、区域的集合 318
13.5.5 扩展引用当前工作表中的单元格区域 321
13.5.6 引用末行或末列 323
13.5.7 引用特殊的单元格 324
13.5.8 区域的行数、列数、左上角、右下角、形状、大小 326
13.5.9 插入单元格或区域 327
13.5.10 单元格的选择和清除 329
13.5.11 单元格的复制、粘贴、剪切和删除 331
13.5.12 单元格的名称、批注和字体设置 335
13.5.13 单元格的对齐方式、背景色和边框 339
13.6 Excel对象模型应用示例 341
13.6.1 应用示例1:批量新建和删除工作表 341
13.6.2 应用示例2:按工作表的某列分类并拆分为多个工作表 343
13.6.3 应用示例3:将多个工作表分别保存为工作簿 346
13.6.4 应用示例4:将多个工作表合并为一个工作表 347
第14章 界面设计 350
14.1 窗体 350
14.1.1 创建窗体 350
14.1.2 窗体的主要属性、方法和事件 351
14.2 控件 354
14.2.1 创建控件的方法 354
14.2.2 控件的共有属性 355
14.2.3 控件的布局 357
14.2.4 标签控件 358
14.2.5 文本框控件 360
14.2.6 命令按钮控件 363
14.2.7 单选按钮控件 365
14.2.8 复选框控件 366
14.2.9 列表框控件 369
14.2.10 组合框控件 372
14.2.11 旋转按钮控件 374
14.2.12 方框控件 375
14.3 界面设计示例 376
第15章 文件操作 383
15.1 文本文件的读/写 383
15.1.1 创建文本文件并写入数据 383
15.1.2 读取文本文件 386
15.1.3 向文本文件追加数据 388
15.2 二进制文件的读/写 390
15.2.1 创建二进制文件并写入数据 390
15.2.2 读取二进制文件 392
第16章 Excel工作表函数 394
16.1 Excel工作表函数概述 394
16.1.1 Excel工作表函数简介 394
16.1.2 在Excel中使用工作表函数 394
16.1.3 在Excel VBA中使用工作表函数 396
16.1.4 在Python中使用工作表函数 397
16.2 常用的Excel工作表函数 399
16.2.1 SUM函数 399
16.2.2 IF函数 401
16.2.3 LOOKUP函数 406
16.2.4 VLOOKUP函数 408
16.2.5 CHOOSE函数 411
第17章 Excel图形 413
17.1 创建图形 413
17.1.1 点 413
17.1.2 直线段 415
17.1.3 矩形、圆角矩形、椭圆和圆 416
17.1.4 多义线和多边形 418
17.1.5 曲线 420
17.1.6 标签 422
17.1.7 文本框 423
17.1.8 标注 424
17.1.9 自选图形 426
17.1.10 艺术字 428
17.2 图形变换 429
17.2.1 图形平移 429
17.2.2 图形旋转 430
17.2.3 图形缩放 431
17.2.4 图形翻转 433
17.3 图片操作 434
17.3.1 图片的添加 434
17.3.2 图片的几何变换 435
第18章 Excel图表 437
18.1 创建图表 437
18.1.1 创建图表工作表中的图表 437
18.1.2 创建嵌入式图表 440
18.1.3 使用Shapes对象创建图表 442
18.1.4 绑定数据 444
18.2 图表及其序列 445
18.2.1 设置图表的类型 445
18.2.2 Chart对象的常用属性和方法 449
18.2.3 设置序列 450
18.2.4 设置序列中单个点的属性 453
18.3 坐标系 456
18.3.1 Axes对象和Axis对象 456
18.3.2 坐标轴标题 459
18.3.3 数值轴的取值范围 460
18.3.4 刻度线 461
18.3.5 刻度标签 462
第19章 Excel数据透视表 465
19.1 数据透视表的创建与引用 465
19.1.1 使用PivotTableWizard方法创建数据透视表 465
19.1.2 使用缓存创建数据透视表 468
19.1.3 数据透视表的引用 470
19.1.4 数据透视表的刷新 471
19.2 数据透视表的编辑 472
19.2.1 添加字段 472
19.2.2 修改字段 474
19.2.3 设置字段的数字格式 475
19.2.4 设置单元格区域的格式 476
19.3 数据透视表的布局和样式 478
19.3.1 设置数据透视表的布局 478
19.3.2 设置数据透视表的样式 479
19.4 数据透视表的排序和筛选 480
19.4.1 数据透视表的排序 480
19.4.2 数据透视表的筛选 481
19.5 数据透视表的计算 483
19.5.1 设置总计行和总计列的显示方式 484
19.5.2 设置字段的汇总方式 485
19.5.3 设置数据的显示方式 486
第20章 正则表达式 487
20.1 正则表达式概述 487
20.1.1 什么是正则表达式 487
20.1.2 使用正则表达式 488
20.2 正则表达式的编写规则 494
20.2.1 元字符 494
20.2.2 重复 499
20.2.3 字符类 503
20.2.4 分支条件 507
20.2.5 捕获分组和非捕获分组 508
20.2.6 零宽断言 512
20.2.7 负向零宽断言 513
20.2.8 贪婪与懒惰 514
20.3 正则表达式的应用示例 516
20.3.1 应用示例1:计算各班的总人数 516
20.3.2 应用示例2:整理食材数据 518
20.3.3 应用示例3:数据汇总 519
第21章 统计分析 522
21.1 数据的导入 522
21.1.1 使用对象模型导入数据 522
21.1.2 使用pandas包导入数据 522
21.2 数据整理 527
21.2.1 使用对象模型进行数据整理 527
21.2.2 使用Excel函数进行数据整理 527
21.2.3 使用Power Query和pandas包进行数据整理 527
21.2.4 使用SQL进行数据整理 529
21.3 数据预处理 530
21.3.1 数据去重 530
21.3.2 缺失值处理 533
21.3.3 异常值处理 536
21.3.4 数据转换 542
21.4 描述性统计 543
21.4.1 描述集中趋势 543
21.4.2 描述离中趋势 545
第22章 Python与Excel VBA混合编程 547
22.1 在Python中调用Excel VBA代码 547
22.1.1 Excel VBA编程环境 547
22.1.2 编写Excel VBA程序 547
22.1.3 在Python中调用Excel VBA函数 548
22.2 在Excel VBA中调用Python 549
22.2.1 xlwings加载项 549
22.2.2 编写Python文件 551
22.2.3 在Excel VBA中调用Python文件 551
22.2.4 xlwings加载项使用“避坑”指南 552
22.3 自定义函数 553
22.3.1 用Excel VBA自定义函数 553
22.3.2 用Excel VBA调用Python自定义函数的准备工作 554
22.3.3 编写Python文件并在Excel VBA中调用 555
22.3.4 常见错误 555
展开