在数据分析方面,Python实际上已经远远超越VBA,因为使用Pyhton提供的数据处理函数和模块就可以实现很多功能,既快速、可靠又简便。本书结合OpenPyXl、win32com、xlwings和pandas等Python包全面介绍使用Python实现Excel脚本开发的各种可能性,涉及的内容包括:Python语言基础、Python文件操作、Excel对象模型、Excel图形绘制、Excel图表绘制、字典在Excel中的应用、正则表达式在Excel中的应用、使用Pandas包提高数据处理效率、使用Matplotlib包绘图、Python与Excel VBA混合编程等。本书适合任何对Excel Python脚本开发感兴趣的朋友阅读,可以是有编程需求的职场办公人员、数据分析人员、大学生、科研人员和程序员等。
童大谦具有15年以上VB、VBA、.NET开发经验,开发了多个数学、数据分析与可视化方面的软件,以及与科研院所合作开发了若干个软件系统。对Python、MATLAB、SPSS、R等数据分析软件非常熟悉,出版多本相关图书。曾在高校执教,CSDN高级讲师,全网学员目前近20万人。
语言基础篇
第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
对象模型篇
第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
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
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
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
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