发布时间:2026/7/16 23:54:21
《超简单:用 Python 让 Excel 飞起来》读书笔记:第9章 导读 在 Excel 中调用 Python 代码 个人主页杨利杰YJlio❄️个人专栏《Sysinternals实战教程》 《Windows PowerShell 实战》 《WINDOWS教程》 《IOS教程》《微信助手》 《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》让复杂的事情更简单让重复的工作自动化《超简单用 Python 让 Excel 飞起来》读书笔记第9章 导读 在 Excel 中调用 Python 代码1. 第9章导读为什么要在 Excel 中调用 Python2. xlwings 是什么Excel 和 Python 之间的桥3. 前置准备先确认 Python 环境可用4. 在 Excel 中加载 xlwings 插件4.1 方式一命令行安装插件4.2 方式二手动加载插件5. 验证 Excel 与 Python 是否真正打通6. 常见问题与排查思路6.1 Excel 里没有 xlwings 选项卡6.2 报错 No module named xlwings6.3 宏被禁用按钮无法运行6.4 脚本能在命令行运行但 Excel 调用失败7. 一个最小可用示例从 Excel 调用 Python8. 我的总结提升1. 第9章导读为什么要在 Excel 中调用 PythonV4修正版进度标记本篇为 07月14日 第2篇继续整理《超简单用 Python 让 Excel 飞起来》读书笔记系列。这一篇主要讲第9章的导读内容如何在 Excel 中调用 Python 代码。这不是简单地“会不会写 Python”的问题而是把 Excel 的表格展示能力和 Python 的自动化处理能力连接起来。Excel 很适合做数据录入、结果展示、人工核对和报表交付但一旦遇到复杂逻辑、批量文件处理、接口调用、自动化分析单靠公式和 VBA 就会明显吃力。这个时候Python 的价值就出来了。我的理解是Excel 负责展示与交付Python 负责逻辑与自动化。这张图展示了“在 Excel 中调用 Python”的整体思路左侧是 Excel 表格右侧是 Python 代码中间通过自动化链路把数据处理、分析建模、结果输出连接起来。从这张图中我们可以看出本文不是单纯介绍一个 Python 库而是在讲一种办公自动化工作流让 Excel 不再只是手工表格而是可以调用 Python 能力的前端入口。注意本文讲的是通过 xlwings 让桌面版 Excel 与本机 Python 环境联动不等同于 Microsoft 365 中的云端 Python in Excel 功能。二者名字相似但使用方式、运行环境和部署逻辑都不一样。2. xlwings 是什么Excel 和 Python 之间的桥xlwings 可以理解成 Excel 和 Python 之间的“桥”。它既可以让 Python 控制 Excel也可以让 Excel 调用 Python。对办公自动化来说这个能力很关键因为很多时候最终交付物仍然是 Excel 文件但中间的数据处理逻辑更适合交给 Python。xlwings 常见使用方式主要有三类Python 控制 Excel读取单元格、写入数据、操作工作表、插入图片、保存工作簿Excel 调用 Python通过按钮、宏或 Run Python 调用 Python 脚本Excel 使用 Python 自定义函数把 Python 函数导入 Excel像公式一样调用。这张图展示了 xlwings 的核心定位它不是替代 Excel也不是替代 Python而是把两者连接起来。从这张图中我们可以看出左边是 Excel 数据表右边是 Python 脚本中间的 xlwings 起到桥接作用。这也解释了为什么第9章会把“在 Excel 中调用 Python”单独拿出来讲它已经不是单个脚本技巧而是 Excel 自动化能力的扩展入口。我个人更建议先把 xlwings 理解成“连接层”不要一上来就纠结 UDF、自定义函数、插件机制这些术语。先弄清楚一件事Excel 里的数据可以交给 Python 处理Python 的结果也可以回写到 Excel。3. 前置准备先确认 Python 环境可用在 Excel 中调用 Python 之前第一件事不是打开 Excel而是确认本机 Python 环境是通的。这个顺序不能反。很多人加载 xlwings 失败本质上不是 Excel 的问题而是 Python、pip、包路径或环境变量没有打通。如果 Python 环境本身不可用后面加载插件、运行脚本、调用模块都会跟着出问题。建议先在命令行执行下面几条命令python--versionpip--version确认 Python 和 pip 都能正常输出版本号后再安装 xlwingspipinstallxlwings安装完成后继续验证 Python 是否真的能导入 xlwingspython-cimport xlwings as xw; print(xw.__version__)如果可以输出版本号说明 Python 侧已经基本准备好。这张图展示了安装 xlwings 前后需要确认的 Python 环境链路包括 Python 版本、pip 状态、安装命令和安装成功提示。这一步的核心要点是先确认 Python 环境正常再去处理 Excel 插件加载。如果你电脑里存在多个 Python 版本尤其是 Anaconda、微软商店 Python、系统 Python 混在一起时一定要确认当前 pip 安装到的是你真正要用的 Python 环境。我在实际处理环境问题时会优先执行下面这条命令确认模块路径python-cimport sys; print(sys.executable)它会告诉你当前命令行正在使用哪个 Python。这个信息非常关键因为 Excel 后续调用 Python 时也需要指向正确的解释器。4. 在 Excel 中加载 xlwings 插件Python 侧准备好之后下一步才是在 Excel 中加载 xlwings 插件。插件加载成功后Excel 顶部功能区会出现一个 xlwings 选项卡。这个选项卡通常包含 Run Python、Import Functions、Show Console、Add Book 等按钮。这里有两种方式一种是命令安装另一种是手动加载。个人建议优先使用命令安装因为路径和注册过程更省事。4.1 方式一命令行安装插件执行xlwings addininstall如果系统提示找不到xlwings命令可以换成下面这种方式python-mxlwings addininstall执行完成后建议关闭所有 Excel 窗口再重新打开 Excel。成功标志Excel 功能区出现 xlwings 选项卡。4.2 方式二手动加载插件如果企业电脑策略比较严格命令安装失败可以尝试手动加载打开 Excel点击文件进入选项选择加载项底部“管理”选择Excel 加载项点击转到点击浏览找到xlwings.xlam勾选后确认。常见路径可能在C:\Users\用户名\AppData\Roaming\Microsoft\AddIns\xlwings.xlam这张图展示了 xlwings 插件加载后的 Excel 功能区效果并把“命令安装”和“手动加载”两种方式放在一起对比。从这张图中我们可以看出插件加载成功后Excel 中会出现 xlwings 选项卡并且可以看到 Run Python、Show Console、Import Modules 等功能按钮。这一步只是说明 Excel 已经具备调用 xlwings 的入口并不代表你的脚本一定能运行成功。这里最容易犯的错误是看到 xlwings 选项卡就认为环境完全正常。实际上插件显示只是第一层验证后面还要继续验证 Excel 能不能真正调用 Python。5. 验证 Excel 与 Python 是否真正打通我不建议只靠“功能区出现 xlwings”来判断成功。更可靠的方式是用 quickstart 生成一个官方示例项目从 Excel 调用 Python 跑一遍。能跑通才说明链路基本正常。执行xlwings quickstart myproject如果xlwings命令无法识别也可以尝试python-mxlwings quickstart myproject生成后通常会出现两个核心文件myproject.xlsm myproject.py打开myproject.xlsm后可以尝试点击 xlwings 相关按钮运行示例脚本。能成功返回结果就说明 Excel 与 Python 的调用链路已经打通。这张图展示了验证流程先确认 xlwings 选项卡加载再打开 quickstart 模板最后通过运行结果确认 Excel 与 Python 已经连通。这一步的核心要点是不要只验证“装没装上”还要验证“能不能运行”。插件、Python 包、宏设置、路径配置任何一个环节不对都可能导致最终调用失败。我建议把验证动作拆成下面这条链路是否确认 Python 可用安装 xlwings 包加载 Excel 插件打开 quickstart 示例运行 Python 示例代码是否成功返回结果Excel 与 Python 调用链路打通检查 Python 路径、宏设置、加载项状态、报错信息6. 常见问题与排查思路xlwings 的问题表面看是“Excel 调不动 Python”但底层可能分布在多个位置Python 环境、pip 安装路径、Excel 加载项、宏安全策略、文件路径、脚本权限。排查时不要只盯着一个点。6.1 Excel 里没有 xlwings 选项卡优先检查Excel 是否完全重启加载项是否被禁用xlwings addin install是否执行成功是否安装到了当前用户目录企业安全策略是否阻止加载项。可以进入文件 → 选项 → 加载项 → 已禁用项目看看 xlwings 是否被 Excel 禁用了。6.2 报错 No module named xlwings这个错误通常说明Excel 调用的 Python 环境里没有安装 xlwings。处理思路python-cimport sys; print(sys.executable)然后对这个 Python 环境重新安装pipinstallxlwings如果你使用的是 Anaconda需要确认 Excel 指向的是 Anaconda 的 Python还是系统 Python。6.3 宏被禁用按钮无法运行xlwings 很多场景依赖 Excel 宏能力所以企业电脑可能会被宏安全策略拦住。可以检查文件 → 选项 → 信任中心 → 信任中心设置 → 宏设置企业环境中不要随便降低宏安全级别。如果是公司电脑建议按公司 IT 安全要求处理必要时让管理员确认信任位置、加载项策略和宏策略。6.4 脚本能在命令行运行但 Excel 调用失败这种情况很常见通常说明命令行 Python 和 Excel 配置的 Python 不是同一个。排查点xlwings Settings 中的 Python Interpreter当前工作簿路径.py文件是否和.xlsm文件在预期目录脚本是否依赖相对路径是否缺少第三方库。我个人处理这类问题时会先把路径全部改成绝对路径验证等链路跑通后再优化成相对路径。7. 一个最小可用示例从 Excel 调用 Python下面给一个非常简单的思路Excel 文件负责作为入口Python 脚本负责写入一个结果。这个示例不是为了复杂功能而是为了验证“Excel → Python → Excel”链路。Python 脚本示例importxlwingsasxwdefmain():wbxw.Book.caller()shtwb.sheets[0]sht.range(A1).valueExcel 已成功调用 Pythonsht.range(A2).value这说明 xlwings 基础链路已经打通if__name____main__:xw.Book(myproject.xlsm).set_mock_caller()main()这段代码的关键在于 xw.Book.caller()。当它由 Excel 调用时可以拿到当前调用它的工作簿对象然后继续操作工作表。如果 A1、A2 能被成功写入内容说明最基础的调用链路已经通了。真实工作中你可以在这个基础上继续扩展比如读取 Excel 中的输入参数、用 pandas 处理数据、生成图表、写回汇总结果等。8. 我的总结提升这一节的重点不是记住几条命令而是建立一个清晰的判断链路Python 环境是否正常、xlwings 包是否可导入、Excel 插件是否已加载、quickstart 示例是否能跑通。我建议按下面这个顺序处理不要跳步先确认 Python 和 pip再安装 xlwings再加载 Excel 插件再用 quickstart 做验证最后再写自己的业务脚本。如果跳过验证直接写复杂脚本后面报错时你很难判断到底是业务代码错了还是环境链路本身没打通。这也是我写自动化脚本时很重视的一点先建立最小可运行闭环再逐步叠加业务逻辑。不要一开始就把数据处理、文件读写、图表输出、Excel 调用全部混在一起。一句话总结加载 xlwings 插件是让 Excel 连接 Python 的第一步quickstart 验证成功才说明这条链路真正可用。下一节就可以继续深入如何把 Python 函数导入 Excel让它像 Excel 自定义函数一样被调用。返回顶部

相关新闻

2026/7/16 23:54:21

Restoring Pruned Large Language Models via Lost Component Compensation

文章核心内容总结 该研究针对大语言模型(LLMs)剪枝后性能下降的问题,提出了一种名为RestoreLCC的目标恢复策略。核心思路是通过捕捉剪枝过程中丢失的关键信息并补偿回模型,在不牺牲剪枝模型稀疏性和推理效率的前提下,恢复其性能。研究验证了剪枝导致的信息损失会体现在注…

2026/7/16 23:49:21

【Atlas】 Atlas 在高并发写入场景下如何避免消息积压?

Apache Atlas 高并发写入场景下的消息积压根治方案:从 Kafka 到 HBase 的全链路调优 用户问题原文:“114. Atlas 在高并发写入场景下如何避免消息积压?” 本文将面向具备 8 年以上大数据开发经验的工程师,深入剖析 Apache Atlas 2…

2026/7/17 0:59:29

16-Java反射机制:Spring IOC背后的核心技术

Java反射机制:Spring IOC背后的核心技术 开篇:为什么框架能自动创建对象? 你有没有想过:Spring里你只写了一个Service注解,Spring就能自动创建对象、注入依赖、调用方法。它是怎么做到的? 答案就是反射。反…

2026/7/17 0:59:29

教师编制缩减过半:师范生职业路径正在重塑

最近翻阅2026年各省教师招聘公告,一个趋势让我感到不安——多地招聘计划出现断崖式缩减。湖北公开招聘2740名,同比减少52.8%;江西从三年前的7821名降至1190名,缩水逾八成;河南公费师范生招生计划砍掉一半。而与此同时&…

2026/7/17 0:59:29

Windows平台部署大模型:llama.cpp实战指南

1. 为什么选择llama.cpp在Windows上部署大模型?在本地运行大型语言模型(LLM)时,llama.cpp因其独特的优势成为开发者的首选方案。作为一个纯C/C实现的轻量级推理框架,它完全避免了Python生态的依赖问题,特别…

2026/7/17 0:59:29

2026这么热,中央空调品牌哪家性价比高

家人们,2026年这天气是越来越热了,我最近就一直在研究中央空调,想给家里换一台。在选择过程中,真的踩了不少坑,也总结了一些经验,今天就来跟大家分享一下。我之前家里用的中央空调,那问题可多了…

2026/7/15 17:04:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/15 22:21:34

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/15 23:18:22

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/17 0:04:23

BiSheng JDK-build性能调优:构建速度提升30%的优化策略

BiSheng JDK-build性能调优:构建速度提升30%的优化策略 【免费下载链接】bishengjdk-build BiSheng JDK build and test scripts - common across all releases/versions 项目地址: https://gitcode.com/openeuler/bishengjdk-build 前往项目官网免费下载&am…

2026/7/16 13:58:36

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…