在数据分析方面,Python实际上已经远远超越VBA,因为使用Python提供的数据处理函数和模块就可以实现很多功能,既快速、可靠,又简便。
本书结合OpenPyxI、win32com、xlwings和pandas等Python包,全面介绍使用Python实现Excel脚本开发的各种可能性,涉及的内容包括Python语言基础、Python文件操作、Excel对象模型、Excel图形绘制、Excel图表绘制、字典在Excel中的应用、正则表达式在Excel中的应用、使用pandas包提高数据处理效率、使用Matplotlib包绘图、Python与Excel VBA混合编程等。
本书适合任何对Excel Python脚本开发感兴趣的朋友阅读,可以是有编程需求的职场办公人员、数据分析人员、大学生、科研人员和程序员等。
目录
语言基础篇
第 1 章 Python 语言基础 2
1.1 Python 语言及其编程环境 2
1.1.1 Python 语言及其特点 2
1.1.2 下载和安装 Python 3
1.1.3 Python 语言的编程环境 4
1.2 常量和变量7
1.2.1 常量 8
1.2.2 变量及其名称 9
1.2.3 变量的声明、赋值和删除 9
1.2.4 深入变量 11
1.2.5 变量的数据类型 12
1.3 数字 12
1.3.1 整型数字 12
1.3.2 浮点型数字 13
1.3.3 复数 13
1.3.4 类型转换 14
1.3.5 Python 的整数缓存机制.15
1.4 字符串 16
1.4.1 创建字符串 16
1.4.2 索引和切片 17
1.4.3 转义字符 17
1.4.4 字符串的格式化输出 18
1.4.5 字符串的长度和大小写 20
1.4.6 字符串的分割、连接和删除 21
1.4.7 字符串的查找和替换 22
1.4.8 字符串的比较 23
1.4.9 字符串缓存机制 24
1.5 列表 25
1.5.1 创建列表 25
1.5.2 添加列表元素 28
1.5.3 索引和切片 29
1.5.4 删除列表元素 31
1.5.5 列表的排序 32
1.5.6 操作函数 32
1.5.7 二维列表 33
1.6 元组 34
1.6.1 元组的创建和删除 34
1.6.2 索引和切片 35
1.6.3 基本运算和操作 36
1.7 字典 37
1.7.1 字典的创建 37
1.7.2 索引 38
1.7.3 字典元素的增删改 39
1.7.4 字典数据的格式化输出 40
1.8 集合 41
1.8.1 集合的创建 41
1.8.2 集合元素的添加和删除 42
1.8.3 集合的运算 42
1.9 处理日期和时间 45
1.9.1 获取日期和时间 45
1.9.2 格式化日期和时间 46
1.10 表达式 47
1.10.1 算术运算符 47
1.10.2 关系运算符 48
1.10.3 逻辑运算符 49
1.10.4 赋值/成员/身份运算符.50
1.10.5 运算符的优先级 50
1.11 流程控制 52
1.11.1 判断结构 52
1.11.2 循环结构——for 循环 57
1.11.3 循环结构——while 循环 61
1.11.4 其他结构 63
1.12 函数 65
1.12.1 内部函数 65
1.12.2 标准模块函数 67
1.12.3 自定义函数 69
1.12.4 变量的作用范围 75
1.12.5 匿名函数 77
1.13 模块 77
1.13.1 内置模块和第三方模块 77
1.13.2 自定义模块 78
1.14 工程 79
1.14.1 导入内置模块和第三方模块 79
1.14.2 导入自定义模块 80
1.15 异常处理 81
1.15.1 常见的异常 81
1.15.2 异常捕获——单分支的情况 82
1.15.3 异常捕获——多分支的情况 83
1.15.4 异常捕获——try except else .84
1.15.5 异常捕获——try finally 84
第 2 章 Python 文件操作 86
2.1 使用 Python 的 open 函数操作文件 86
2.1.1 open 函数 86
2.1.2 创建文本文件并写入数据 87
2.1.3 读取文本文件数据 89
2.1.4 向文本文件中追加数据 90
2.1.5 读/写二进制文件数据 91
2.1.6 使用 struct 模块读取二进制文件92
2.2 使用 OS 模块操作文件 93
2.2.1 文件操作 93
2.2.2 目录操作 95
2.2.3 路径操作 96
2.2.4 系统操作 97
Excel 对象模型篇
第 3 章 Excel 对象模型:
OpenPyxl 包 100
3.1 OpenPyxl 包概述 100
3.1.1 Excel 相关 Python 包的比较 100
3.1.2 OpenPyxI 包及其安装 101
3.1.3 Excel 对象模型 101
3.1.4 使用 OpenPyxI 包的一般过程 102
3.2 工作簿对象 102
3.2.1 创建、保存和关闭工作簿 102
3.2.2 打开已有的工作簿文件.103
3.3 工作表对象 104
3.3.1 创建和删除工作表 104
3.3.2 管理工作表.105
3.3.3 引用工作表.106
3.3.4 复制、移动工作表 106
3.3.5 行/列操作 107
目录 ∣VII
3.3.6 工作表对象的其他属性和方法 113
3.4 单元格对象 114
3.4.1 单元格的引用和赋值 114
3.4.2 引用单元格区域 115
3.4.3 操作单元格区域 116
3.4.4 设置单元格样式 117
3.4.5 插入图片 128
3.4.6 插入公式 129
3.5 综合应用 129
3.5.1 批量新建和删除工作表 129
3.5.2 按列拆分工作表 131
3.5.3 将多个工作表分别保存为工作簿 133
3.5.4 将多个工作表合并为一个工作表 134
第 4 章 Excel 对象模型:win32com 和
xlwings 包 137
4.1 win32com 和 xlwings 包概述 137
4.1.1 win32com 包及其安装 137
4.1.2 xlwings 包及其安装 139
4.2 Excel 对象 139
4.2.1 Excel 对象及其层次结构 139
4.2.2 使用 win32com 创建 Excel 对象 140
4.2.3 使用 xlwings 创建 Excel 对象 140
4.2.4 xlwings 的两种编程方式 141
4.3 单元格对象 141
4.3.1 引用单元格 142
4.3.2 引用整行和整列 145
4.3.3 引用区域 147
4.3.4 引用所有单元格/特殊区域/区域的
集合 151
4.3.5 扩展引用当前工作表中的单元格
区域 154
4.3.6 引用末行或末列 156
4.3.7 引用特殊的单元格 158
4.3.8 获取区域的行数、列数、左上角
和右下角单元格的坐标、形状、
大小 159
4.3.9 插入单元格或区域 161
4.3.10 选择和清除单元格 162
4.3.11 复制、粘贴、剪切和删除单
元格 164
4.3.12 设置单元格的名称、批注和
字体 168
4.3.13 设置单元格的对齐方式、背景色
和边框 172
4.4 工作表对象 175
4.4.1 相关对象介绍 175
4.4.2 创建和引用工作表 175
4.4.3 激活、复制、移动和删除工作表.179
4.4.4 隐藏和显示工作表 182
4.4.5 选择行和列.183
4.4.6 复制、剪切行和列 185
4.4.7 插入行和列.187
4.4.8 删除行和列.189
4.4.9 设置行高和列宽 191
4.5 工作簿对象 193
4.5.1 创建和打开工作簿 193
4.5.2 引用、激活、保存和关闭工作簿.195
4.6 Excel 应用对象 197
4.6.1 Application(App)对象和 Apps
对象 197
4.6.2 定义位置、大小、标题、可见性
和状态属性.199
4.6.3 定义其他常用属性 201
4.7 数据读/写 202
4.7.1 Excel 工作表与 Python 列表之间
的数据读/写 203
VIII
4.7.2 Excel 工作表与 Python 字典之间
的数据读/写 207
4.7.3 Excel 工作表与 Python DataFrame
之间的数据读/写 208
4.8 综合应用 208
4.8.1 批量新建和删除工作表 208
4.8.2 按列拆分工作表 211
4.8.3 将多个工作表分别保存为工作簿 215
4.8.4 将多个工作表合并为一个工作表 217
图形图表篇
第 5 章 使用 Python 绘制 Excel 图形 224
5.1 创建图形 224
5.1.1 点 224
5.1.2 直线段 226
5.1.3 矩形、圆角矩形、椭圆形和圆形 226
5.1.4 多义线和多边形 228
5.1.5 曲线 229
5.1.6 标签 230
5.1.7 文本框 231
5.1.8 标注 231
5.1.9 自选图形 233
5.1.10 图表 234
5.1.11 艺术字 235
5.2 图形属性设置 237
5.2.1 颜色设置 237
5.2.2 线条属性:LineFormat 对象 239
5.2.3 线条属性:颜色、线型和线宽 240
5.2.4 线条属性:箭头、透明度和图案
填充 241
5.2.5 线条属性:多义线、曲线和多边
形的顶点 243
5.2.6 面的属性:FillFormat 对象、颜色
和透明度 245
5.2.7 面的属性:单色填充和渐变色
填充 246
5.2.8 面的属性:图案填充、图片填充
和纹理填充.250
5.2.9 文本属性 253
5.3 图形变换 254
5.3.1 图形平移 254
5.3.2 图形旋转 255
5.3.3 图形缩放 255
5.3.4 图形翻转 256
5.4 其他图形操作 257
5.4.1 遍历工作表中的图形.257
5.4.2 固定图形在工作表中的位置 260
5.4.3 动画 260
5.5 图片操作 261
5.5.1 创建图片 261
5.5.2 图片的几何变换 262
第 6 章 使用 Python 绘制 Excel 图表 263
6.1 创建图表 263
6.1.1 使用 xlwings 包创建图表 263
6.1.2 使用 API 方式创建图表 265
6.1.3 使用 Shapes 对象创建图表 266
6.1.4 绑定数据 269
6.2 图表及其序列设置 270
6.2.1 设置图表类型 270
6.2.2 Chart 对象的常用属性和方法 271
6.2.3 设置序列 272
6.2.4 设置序列中单个点的属性 274
6.3 基本图形元素的属性设置 276
6.3.1 设置颜色 276
6.3.2 设置线形图形元素的属性 277
6.3.3 设置区域的透明度和颜色填充.277
6.3.4 设置区域的图案/图片/纹理填充 279
目录 ∣Ix
6.4 坐标系设置 280
6.4.1 设置 Axes 对象和 Axis 对象 280
6.4.2 设置坐标轴标题 281
6.4.3 设置数值轴取值范围 282
6.4.4 设置刻度线 283
6.4.5 设置刻度标签 283
6.4.6 设置网格线 285
6.4.7 设置多轴图 286
6.4.8 设置对数坐标图 287
6.4.9 设置其他属性 288
6.5 图表元素设置 290
6.5.1 SetElement 方法 290
6.5.2 设置图表区域/绘图区 292
6.5.3 设置图例 293
6.6 输出图表 294
6.6.1 将图表复制到剪贴板 295
6.6.2 将图表保存为图片 296
数据处理篇
第 7 章 使用 Python 字典处理 Excel
数据 298
7.1 数据提取 298
7.1.1 提取首次数据 298
7.1.2 提取末次数据 300
7.2 数据去重 302
7.2.1 使用列表去重 302
7.2.2 使用集合去重 304
7.2.3 使用字典去重 305
7.2.4 使用字典对象的 fromkeys 方法
去重 306
7.2.5 多表去重 308
7.2.6 跨表去重 309
7.3 数据查询 312
7.3.1 个案查询 312
7.3.2 多条件查询.313
7.4 数据汇总 314
7.4.1 出现次数汇总 315
7.4.2 数据求和汇总 316
7.4.3 多条件汇总.318
7.5 数据排序 319
第 8 章 使用 Python 正则表达式处理
Excel 数据 322
8.1 正则表达式概述 322
8.1.1 什么是正则表达式 322
8.1.2 正则表达式示例 323
8.2 在 Python 中使用正则表达式325
8.2.1 re 模块 325
8.2.2 Match 对象330
8.2.3 Pattern 对象 332
8.3 正则表达式的编写规则.334
8.3.1 元字符 334
8.3.2 重复 338
8.3.3 字符类 343
8.3.4 分支条件 344
8.3.5 捕获分组和非捕获分组.345
8.3.6 零宽断言 349
8.3.7 负向零宽断言 351
8.3.8 贪婪匹配与懒惰匹配.353
第 9 章 更快、更简洁:使用 pandas 包
处理数据 354
9.1 NumPy 和 pandas 包概述 354
9.1.1 NumPy 和 pandas 包简介 354
9.1.2 NumPy 和 pandas 包的安装 355
9.2 NumPy 和 pandas 包提供的数据
类型 355
x∣
9.2.1 NumPy 数组 355
9.2.2 pandas Series 359
9.2.3 pandas DataFrame 363
9.3 数据输入和输出 370
9.3.1 Excel 数据的读/写 370
9.3.2 CSV 数据的读/写 373
9.3.3 将 DataFrame 数据保存到新的
工作表中 374
9.3.4 在同一个工作表中读/写多个
DataFrame 数据 375
9.4 数据整理 377
9.4.1 添加行或列 377
9.4.2 插入行或列 378
9.4.3 更改数据 380
9.4.4 删除行或列 381
9.4.5 添加前缀或后缀 382
9.4.6 数据去重 383
9.4.7 数据筛选 383
9.4.8 数据转置 385
9.4.9 合并数据 385
9.4.10 连接数据 393
9.4.11 拼接数据 395
9.4.12 追加数据 397
第 10 章 扩展 Excel 的数据可视化功能:
Matplotlib 包 398
10.1 Matplotlib 包概述 398
10.1.1 Matplotlib 包简介 398
10.1.2 安装 Matplotlib 包 399
10.2 使用 Matplotlib 包绘图 399
10.2.1 点图 399
10.2.2 线形图 401
10.2.3 条形图 404
10.2.4 面积图 406
10.2.5 饼图 407
10.3 导出用 Matplotlib 包绘制的图形 408
10.3.1 保存用 Matplotlib 包绘制的
图形 408
10.3.2 将用 Matplotlib 包绘制的图形
添加到 Excel 工作表中 409
扩展编程篇
第 11 章 Python 与 Excel VBA 混合
编程 412
11.1 在 Python 中调用 VBA 代码 412
11.1.1 Excel VBA 编程环境 412
11.1.2 编写 Excel VBA 程序.414
11.1.3 在 Python 中调用 VBA 函数 414
11.2 在 VBA 中调用 Python 代码 415
11.2.1 xlwings 加载项 415
11.2.2 编写 Python 文件 417
11.2.3 在 VBA 中调用 Python 函数 418
11.2.4 xlwings 加载项使用避坑指南419
11.3 自定义函数(UDF)420
11.3.1 使用 VBA 自定义函数 420
11.3.2 在 VBA 中调用 Python 自定义
函数的准备工作 421
11.3.3 在 VBA 中调用 Python 自定义
函数 421
11.3.4 常见错误 422