# 《超简单:用Python让Excel飞起来》知识点全解 > AI生成|2026年10月29日|codebuddy|原书:王秀文 郭明鑫 王宇韬《超简单:用Python让Excel飞起来》,机械工业出版社,2020-07-01 > **我的阅读**:进度 99%|累计 4小时13分钟|开始 2020-11-20|最近 2022-03-30|读完 2020-12-06 **一句话总结**:把"手工点鼠标"的 Excel 重复劳动,翻译成"写一段脚本"的批量任务——用 xlwings 操控工作簿、pandas 整理数据、Matplotlib 出图,写一次、跑无数次。 **适合谁 / 前置知识** - 适合:有 Excel 基础、每天被"打开—复制—粘贴—另存为"折磨的文秘、行政、人事、营销、财务;想用真实场景入门 Python 的自学者。 - 不适合:想系统学 Python 语言的人(语法部分只够看懂脚本);做大数据或机器学习的人。 - 前置:分得清单元格、工作表、工作簿;会装软件。不需要编程经验,但需要"报错不慌"的耐心。 ## 一、全书地图 全书三层递进:**先能跑(环境)→ 再能读(语法)→ 最后能干活(案例)**。 | 层次 | 章节 | 内容 | 作用 | |---|---|---|---| | 起步 | 第1章 Python快速上手 | 为何用 Python 控制 Excel、IDLE 安装、Anaconda+PyCharm 配置、模块初识与安装、首个演示 | 打通"装得上、跑得动" | | 语言 | 第2章 基础语法 | 变量;数字/字符串;列表/字典/元组/集合;四类运算符;缩进与注释;if/for/while 及嵌套;内置与自定义函数 | 只教"读脚本必需"的子集 | | 工具 | 第3章 Python模块 | import / from 导入;os;xlwings;NumPy;pandas;Matplotlib;模块交互 | 全书技术核心,案例均由这五个模块组合 | | 应用 | 第4章 批量处理工作簿和工作表 | 批量新建保存关闭、批量打开、批量重命名工作表、批量重命名工作簿、批量增删工作表、批量打印(每节配"举一反三") | 批量套路的第一组样板 | | 应用 | 第5~8章 | 按简介,以典型案例展开数据整理、分析、可视化等自动化处理(小节目录未列出,**待核对**) | 同一套路在更多业务场景复制 | | 回流 | 第9章 | 在 Excel 中调用 Python 代码 | 双向打通:Python 开 Excel,Excel 也叫得动 Python | **逻辑关系**:第1章解决"有没有工具",第2章"看不看得懂",第3章"会不会用",第4~8章"能不能批量干活",第9章"能不能把成果交给不会编程的同事"。前三章是投入,第4章起是回报。 > 微信读书目录仅详列到第4章案例06,第5~8章与第9章只有简介层描述,上图按主题分块,未编造小节号。 ## 二、核心知识点 **1. 两条环境路线:IDLE 与 Anaconda+PyCharm** IDLE 是官方自带编辑器,装完即用;Anaconda 是"Python+科学计算库+conda"的集成发行版,PyCharm 是 IDE。后面要用的 pandas、NumPy、Matplotlib 若逐个 pip 装容易踩依赖坑,Anaconda 预装大半。**误区**:机器上多个 Python,pip 装到 A、IDE 用 B,于是"明明装了却 import 不到"——排查第一步永远是看解释器路径。 **2. 模块与安装** 模块就是别人写好的、可直接调用的代码单元,第三方模块靠 `pip install 包名` 获得。**为什么重要**:本书九成能力来自 xlwings、pandas 等非标准库。**误区**:把"没装"和"装了没导入"混为一谈;中文路径导致安装失败却怀疑代码。 **3. 变量与基础类型** 数字、字符串、布尔。用 `type()` 查询,`int()/float()/str()` 转换。**为什么重要**:Excel 单元格的值进入 Python 后必然带上某个类型,类型错则计算错。**误区**:从 Excel 读进来的"数字"常是字符串(带空格、千分位、全角字符),直接相加会报错或变成拼接——先清洗再转换。 **4. 容器四件套** 列表有序可改、字典键值对、元组有序不可改、集合无序去重。**为什么重要**:批量处理本质是"把文件路径放进列表再循环";字典适合记"文件名→结果"。**误区**:边遍历列表边删除元素会漏项,应遍历副本或倒序删。 **5. 运算符** 算术、字符串拼接与重复、比较、赋值(含 `+=`)、逻辑(and/or/not)。**为什么重要**:脚本里的筛选条件就是它们的组合,如"金额>1000 且 部门=销售"。**误区**:`=` 当 `==`;混淆 `/`(真除法得浮点)与 `//`(整除)。 **6. 缩进与注释** Python 用缩进(通常 4 空格)表示代码块归属,不用大括号;注释用 `#`。**为什么重要**:缩进错不是"不好看",而是 IndentationError,或逻辑悄悄跑偏——循环体包含哪几行全看缩进。**误区**:网页复制代码 Tab 与空格混排。 **7. 控制语句** if 分支、for 遍历、while 条件循环,可嵌套。**为什么重要**:批量的骨架就是"外层遍历文件、内层遍历工作表、再加判断要不要处理"。**误区**:while 忘更新条件造成死循环;嵌套超过四层应拆函数。 **8. 函数** 内置如 `len/sum/max`,自定义用 `def`,可带参数与返回值。**为什么重要**:"打开—筛选—另存"会在十几个案例重复,封装后改一处即可。**误区**:只 print 不 return,结果无法被下一步使用;函数内改外部变量却没声明,作用域出错。 **9. 两种导入** `import pandas as pd` 保留命名空间,用时 `pd.read_excel()`;`from pandas import read_excel` 可直接调用。**为什么重要**:`pd`/`xw`/`plt` 三个别名是行业惯例,读别人代码必须认得。**误区**:`from 模块 import *` 污染命名空间,重名时极难排查。 **10. os 模块** `getcwd` 取工作目录,`listdir` 列目录,`path.join` 拼路径,`path.splitext` 拆主名与扩展名,`rename` 改名。**为什么重要**:批量第一步永远是"找到文件",路径错则全盘错;拆扩展名是重命名脚本的核心。**误区**:用相对路径,换个目录运行就找不到文件;Windows 反斜杠未转义,应写 `r"..."` 或用 join。 **11. xlwings:像人一样操作 Excel** 通过 COM 调用真实 Excel,能建簿、保存、打开、切表、读写单元格、设格式、打印。**为什么重要**:pandas 只处理数据,xlwings 处理"Excel 这个软件"——格式、多表结构、打印都靠它。**怎么用**:`app = xw.App(visible=False)` → `wb = app.books.add()` → `sht.range("A1").value = ...` → `wb.save()` → `wb.close()` → `app.quit()`。**误区**:忘记退出,任务管理器堆满隐藏 EXCEL.EXE;不开 `visible=False`,批量跑时屏幕狂闪。 **12. NumPy:整列计算** ndarray 是同类型多维数组,支持向量化与广播。**为什么重要**:Excel 一列公式往下拉本质就是向量化,NumPy 让"整列同时算"成立且远快于 for 循环。**误区**:把列表当数组做数学运算(列表 `*2` 是重复不是乘二);数组元素类型被自动统一,混入字符串会整体退化。 **13. pandas:DataFrame 是内存里的工作表** Series 是一列带索引的数据,DataFrame 是带行列标签的二维表。 - 创建:`pd.DataFrame({"姓名": [...], "金额": [...]})` - 读写:`pd.read_excel()` / `df.to_excel(index=False)` - 选取:`df[df["金额"] > 1000]`、`df.loc[]` 按标签、`df.iloc[]` 按位置 - 处理:去重、缺失值填充删除、排序、`groupby` 汇总 - 拼接:`pd.concat()` 纵向堆叠,`pd.merge()` 按键关联 **误区**:导出忘 `index=False` 多出一列行号;loc 与 iloc 混用;链式赋值可能不生效。 **14. Matplotlib** 折线图看趋势,柱形图比大小;`plt.plot/bar`、`title/xlabel`、`savefig/show`。**为什么重要**:脚本出图意味着"每月自动生成同款图表"。**误区**:中文标题显示方框需设字体;`show()` 后再 `savefig()` 得到空白图,应先存再显。 **15. 模块交互与批量骨架** xlwings↔pandas:`sht.range("A1").options(pd.DataFrame, expand="table").value` 读入,处理后写回;xlwings↔Matplotlib:把图插入指定位置。第4章六个案例其实是同一骨架的变体,替换的只是"中间那步操作"。**误区**:`expand` 不写只读到单个单元格;不判断类型,把临时文件 `~$xxx.xlsx` 也打开而报错;不 try/except,一个坏文件中断整批。 ## 三、关键概念速查表 | 概念 | 一句话解释 | 用在哪儿 | |---|---|---| | 模块/包 | 可复用的代码单元 | 一切第三方能力 | | pip/conda | 安装与版本管理工具 | 环境搭建、装包 | | list | 有序可改序列 | 存待处理文件清单 | | dict | 键值对集合 | 记录"文件→结果" | | tuple / set | 不可改序列 / 无序去重 | 固定配置 / 去重 | | 缩进 | 用空格表示代码块归属 | 所有 if/for/def | | def | 命名并复用一段逻辑 | 封装清洗、导出 | | path.join | 安全拼接路径 | 跨平台构造路径 | | splitext | 拆主名与扩展名 | 批量重命名保后缀 | | xlwings | COM 操控真实 Excel | 建簿/开簿/保存/打印 | | ndarray | 同类型多维数组 | 整列数学运算 | | DataFrame | 带标签二维表 | 读取、筛选、汇总、导出 | | loc / iloc | 按标签 / 按位置取 | 精确取行取列 | | groupby | 分组后聚合 | 按部门、月份汇总 | | concat / merge | 纵向堆叠 / 按键关联 | 多表合并 | | 举一反三 | 每案例后的变体练习 | 检验是否真懂骨架 | ## 四、可复用的方法/框架 **A. 批量任务五步骨架** 1. **定边界**:输入目录、输出目录、文件类型写成变量,放脚本最上方。 2. **取清单**:`os.listdir()` 取全量,过滤 `~$` 临时文件与非目标扩展名。 3. **开与关成对**:每个 open/add 有对应 close,`app.quit()` 放 `finally`。 4. **只改需要改的**:改值、改表名、改文件名,一次只做一件事。 5. **留痕兜底**:try/except 包住单文件处理,失败记日志继续,最后汇报成功/失败数。 **B. 选型判断** 只动数据不动格式 → pandas;要动格式、合并单元格、打印、多表结构 → xlwings;两者都要 → pandas 算、xlwings 贴;几十万行以上 → 用 pandas/NumPy,xlwings 逐格读写极慢。 **C. 调试三问** 报的是"找不到文件"还是"找不到模块"(路径 vs 环境)?报错行上一行的变量,print 出来是什么类型和值?降到 1 个文件能跑通吗? **D. 从案例到能力** 每读完一个案例做三件事:换目录、加筛选条件、换输出格式。三步都过,才算真掌握。 ## 五、我的阅读轨迹 | 指标 | 数据 | |---|---| | 进度 | 99% | | 累计阅读 | 4 小时 13 分钟 | | 开始阅读 | 2020-11-20 | | 最近阅读 | 2022-03-30 | | 读完时间 | 2020-12-06 | **复习建议**:已标记读完但停在 99%,且最近一次阅读距今已久,缺口是"最后一小段 + 长期不用导致的生疏"。 1. **重读第3章**:唯一"忘了就写不出代码"的部分,重点 xlwings 的 App/Book/Sheet/Range 四层对象与 pandas 的 loc/iloc、读写参数。 2. **重做第4章案例01~06**:不看答案独立写,检验开/存/关是否成对、异常是否兜底。 3. **第2章按需查**:语法是字典不是课文。 4. **第9章收尾**:要把脚本交给同事用,这一章是从"自己会"到"团队能用"的关键,值得补完那 1%。 ## 六、行动清单 1. **搭一套能跑的环境**:装 Anaconda,PyCharm 指向该解释器,跑通三个 import。 2. **写第一个十行脚本**:批量打印指定文件夹内所有 `.xlsx` 的工作表名。 3. **封装一个函数**:把"读取一个工作簿全部工作表并合并成 DataFrame"写成 `merge_sheets(path)`。 4. **改造一个真实任务**:挑本周最烦的一次重复操作,用五步骨架重写,记录耗时对比。 5. **做一次批量重命名**:`listdir`+`splitext`+`rename`,先在复制出的测试目录跑。 6. **建踩坑笔记**:只记"报错原文 → 原因 → 解法"三列。 7. **给脚本加兜底**:补 try/except 与成败计数,再用于生产文件。 8. **补完第9章**:做一个小功能,交给不会编程的同事试用。 ## 七、延伸阅读 | 书 | 关联 | 顺序 | |---|---|---| | 《利用Python进行数据分析》(Wes McKinney) | pandas 作者亲写,把第3.5节讲透到原理层 | 本书之后,作为 pandas 正式教材 | | 《Python编程:从入门到实践》 | 补齐本书刻意略过的类、异常、文件、测试 | 并行或之后 | | Excel 数据处理类工具书 | 补 Excel 侧业务逻辑(函数、透视表、Power Query),本书假设你已具备 | 本书之前或同时 | **顺序建议**:Excel 底子 → 本书(建立"能自动化"的信心)→ pandas 专著(深挖数据)→ 语言书(补内功)。反过来先从语言书入门的人,常在学到"能干活"之前就放弃了。