👉 项目官网:https://www.python-office.com/ 👈
👉 本开源项目的交流群 👈
大家好,这里是程序员晚枫。
之前给大家推荐了:Python处理Excel用哪个库?Pandas不是唯一选择
在做资料检索的过程中,我有了一个意外发现:微软的Excel,已经支持Python了?!
你的 Excel 其实藏着 Python 引擎,2025 年最值得学的办公技能
2025 年 3 月,微软宣布 Excel 内置 Python 功能全面开放,Windows、Mac 和网页版用户终于能直接在单元格中运行 Python 代码。
这不是简单的插件集成,而是将 Python 生态(如 pandas、matplotlib)直接嵌入 Excel,意味着你不用切换窗口就能用 Python 处理数据、生成图表,甚至跑机器学习模型。
但多数人还不知道:你的 Excel 可能已经支持这项功能。打开 Excel 看看「公式」选项卡是否有「插入 Python」按钮?如果没有,检查你的版本是否符合要求——这是解锁高效办公的第一道门槛。
先确认:你的 Excel 能跑 Python 吗?
微软对 Excel 中的 Python 支持有明确的版本限制,不同平台差异很大:
- Windows 用户:需 Office 365 企业版/商业版,当前频道(版本 2408+)或每月企业频道(版本 2408+);家庭/个人版需通过预览体验计划开启。
- Mac 用户:需 Office 365 企业版/商业版,Current Channel(版本 16.96+);家庭/个人版需加入 Beta 频道预览。
- 网页版用户:企业/商业版直接支持,家庭/个人版可预览,需登录微软账户。
如何检查版本? 打开 Excel,按「文件 > 账户 > 关于 Excel」,查看版本号和频道。如果版本不支持,企业用户可联系 IT 部门升级,个人用户可在「文件 > 账户 > 加入预览体验计划」中切换到 Beta 频道(可能有稳定性风险)。
3 步启用 Excel 中的 Python,比安装插件还简单
第 1 步:插入 Python 公式
两种方式启动 Python 模式:
- 按钮启动:选中单元格,点击「公式」选项卡中的「插入 Python」按钮,单元格会显示绿色「PY」图标,编辑栏同步出现该图标。
- 手动输入:在单元格中直接输入
=PY(
,Excel 会自动弹出函数提示,按 Tab 键确认后进入编辑模式。
注意:首次使用可能需要同意服务条款,并等待 Python 运行环境初始化(约 10 秒),后续使用会更快。
第 2 步:用 xl() 函数引用 Excel 数据
Excel 中的 Python 不能直接读取本地文件(如 pandas.read_excel
禁用),必须通过 xl()
函数引用工作表数据。语法规则如下:
- 引用单个单元格:
xl("A1")
- 引用区域:
xl("B1:C4")
(B1 到 C4 的矩形区域) - 引用表格:
xl("MyTable[#All]", headers=True)
(MyTable 为表格名称,#All
表示整个表格,headers=True
保留表头)
示例:在单元格中输入 =PY(xl("A1") + xl("B1"))
,即可计算 A1 和 B1 的和,结果直接显示在单元格中。
第 3 步:选择输出类型
编辑栏右侧有「Python 输出」菜单,支持两种结果类型:
- Excel 值:Python 计算结果转换为 Excel 原生格式(数字、文本、数组),可直接用于 Excel 公式、图表或条件格式。
- Python 对象:保留原始 Python 对象(如 DataFrame、列表),单元格显示「卡片图标」,点击可查看对象详情,适合后续 Python 计算(如用
df.groupby()
进一步分析)。
建议:如果后续用 Excel 分析选「Excel 值」,如果继续用 Python 处理选「Python 对象」。
实战:用 Excel 内置 Python 做销售数据分析
假设你有一份销售数据表格(A1:D100,含「日期、产品、销售额、成本」列),目标是计算各产品利润率并生成趋势图。
步骤 1:导入数据(关键!必须用 Power Query)
由于 Excel 中的 Python 禁用本地文件读取,需先通过 Power Query 导入数据:
- 点击「数据 > 获取和转换数据 > 从文件 > 从 Excel 工作簿」,选择你的数据文件。
- 在 Power Query 编辑器中加载数据,点击「关闭并上载」,数据会显示在新工作表中(假设表名为「销售数据」)。
步骤 2:用 Python 计算利润率
在目标单元格输入公式:
=PY(
df = xl("销售数据[#All]", headers=True);
df["利润率"] = (df["销售额"] - df["成本"]) / df["销售额"];
df[["产品", "利润率"]]
)
- 解析:
xl("销售数据[#All]", headers=True)
将表格导入为 DataFrame; - 新增「利润率」列,计算 (销售额-成本)/销售额;
- 返回「产品」和「利润率」列,输出类型选「Excel 值」。
结果:单元格会扩展为数组,显示产品名称和对应利润率,可直接用于 Excel 排序或筛选。
步骤 3:生成动态图表
- 选中 Python 输出的利润率数据,点击「插入 > 图表 > 柱状图」。
- 右键图表 >「选择数据」,确保数据源包含 Python 输出的数组区域。
- 当原始销售数据更新时,按 F9 刷新 Python 计算,图表会自动同步更新。
避坑指南:90% 的人会遇到的 3 类错误
1. #PYTHON! 错误
- 原因:Python 代码语法错误(如括号缺失、变量未定义)或数据类型不匹配(如字符串减数字)。
- 解决:点击单元格旁的错误图标,选择「编辑 Python」,在编辑栏中检查代码,确保引用的单元格区域存在且格式正确。
2. #BUSY! 错误
- 原因:Python 计算超时(如处理 10 万行数据)或资源占用过高。
- 解决:按 Esc 中断计算,简化代码(如分块处理数据),或切换到「手动计算」模式(「公式 > 计算选项 > 手动计算」),按需按 F9 刷新。
3. 无法启用 Python 功能
- 原因:版本不符或管理员禁用。
- 解决:确认 Excel 版本和频道(参考前文),企业用户联系 IT 部门检查组策略,个人用户尝试重装 Office 365。
为什么说这是 Excel 史上最颠覆的更新?
过去处理 Excel 数据,你可能需要在 Excel 和 Python 之间反复切换:用 Excel 整理数据,导出为 CSV,再用 Python 分析,最后将结果复制回 Excel。现在,整个流程能在 Excel 中闭环:
- 数据导入:Power Query 替代
pandas.read_excel
,直接对接数据库、网页数据或本地文件。 - 分析计算:单元格中写 Python 代码,调用 pandas、numpy 等库,无需安装环境。
- 结果呈现:Python 输出直接转为 Excel 值,无缝对接图表、透视表等功能。
微软官方数据显示,该功能能将数据分析流程耗时减少 60%,尤其适合财务、市场等需要频繁处理表格数据的岗位。未来,随着 AI 功能的整合(如用 Copilot 自动生成 Python 代码),Excel 可能不再只是「电子表格」,而是变成集数据处理、编程、可视化于一体的综合平台。
现在就打开你的 Excel 试试吧——下一个效率革命,可能就藏在你每天使用的软件里。
(如果在使用中遇到问题,可通过 Excel 「帮助 > 反馈」提交,微软会优先处理高频问题。)
参考文档
另外,大家去给小明的小红书👇账号点点赞吧~!我不想努力了,想吃软饭了。