Excel 中的 Python 入门
应用对象
从版本 2408(内部版本 17928.20114)开始,Excel 中的 Python 适用于运行 Windows 上的当前频道的企业版和商业版用户。从版本 2408(内部版本 17928.20216)开始,Excel 中的 Python 适用于运行 Windows 上的每月企业频道的企业版和商业版用户。 它还在适用于企业版和商业版用户的 Excel 网页版中提供。 从版本 2405(内部版本 17628.20164)开始,Excel 中的 Python 向 Excel 网页版中或运行当前频道的家庭和个人用户提供预览版。 它向通过Microsoft 365 预览体验计划运行当前频道(预览版)的教育版用户提供预览版。 它目前不适用于半年企业频道。
从版本 16.96 开始,从版本 16.96 (Build 25041326) 开始,在 Excel for Mac 上运行 Current Channel 的企业和企业用户可以使用 Excel 中的 Python。 通过 Microsoft 365 预览体验计划,在 Excel for Mac 上提供家庭和个人用户预览版。 选择 Beta 频道预览体验成员级别并安装 Excel 的最新版本;它从版本 16.95 开始提供, (内部版本25021921) 。
有关更多可用性信息,请参阅 Excel 中的 Python 的可用性。 如果在使用 Excel 中的 Python 时遇到任何问题,请通过在 Excel 中选择帮助 > 反馈来报告这些问题。
不熟悉 Excel 中的 Python? 请从 Excel 中的 Python 简介开始。
开始使用 Python
若要开始使用 Excel 中的 Python,请选择一个单元格,然后在“公式”选项卡上选择“插入 Python”。 这会告知 Excel 你想要在所选单元格中编写 Python 公式。
或者在单元格中使用函数 =PY 来启用 Python。 在单元格中输入 =PY 后,使用向下键和 Tab 键从函数自动完成菜单中选择“PY”,或向函数添加左括号:=PY(。 现在,可以直接在单元格中输入 Python 代码。 以下屏幕截图显示了自动完成菜单,其中选择了 PY 函数。
在单元格中启用 Python 后,该单元格将显示 PY 图标。 选中 Python 单元格时,编辑栏将显示相同的 PY 图标。 有关示例,请看以下屏幕截图。
将 Python 与 Excel 单元格和区域结合使用
若要在 Python 单元格中引用 Excel 对象,请确保 Python 单元格处于编辑模式,然后选择要在 Python 公式中包含的单元格或区域。 系统会自动使用所选单元格或区域的地址填充该 Python 单元格。
提示: 在 Python 单元格中使用键盘快捷方式 F2 在输入模式和编辑模式之间切换。 切换为编辑模式可以编辑 Python 公式,而切换到输入模式则允许使用键盘选择其他单元格或区域。 如需了解更多快捷方式,请参阅 Excel 中的 Python 快捷方式。
xl() 在 Excel 和 Python 之间建立联系。 xl() 函数接受区域、表格、查询和名称等 Excel 对象。
Excel 中的 Python 使用自定义 Python 函数你还可以使用 xl() 函数直接在 Python 单元格中键入引用。 例如,若要引用单元格 A1,请使用 xl("A1");若要引用区域 B1:C4,请使用 xl("B1:C4")。 对于具有标头且名为 MyTable 的表格,请使用 xl("MyTable[#All]", headers=True)。 [#All] 说明符可确保在 Python 公式中分析整个表格,headers=True 则可确保正确处理表格标头。 若要了解有关 [#All] 等说明符的详细信息,请参阅对 Excel 表格使用结构化引用。
下图显示了一个使用 Excel 中的 Python 的计算,该计算将单元格 A1 和 B1 的值相加,并在单元格 C1 中返回了 Python 结果。
编辑栏
使用编辑栏进行类似代码的编辑行为,例如使用 Enter 键创建新行。 使用向下箭头图标展开编辑栏,一次查看多行代码。 还可以使用键盘快捷方式 Ctrl+Shift+U 展开编辑栏。 以下屏幕截图分别显示了展开前后的编辑栏,展开后可查看多行 Python 代码。
展开编辑栏之前:
展开编辑栏之后:
提示: 如需更大的代码编辑空间以及文本着色和 IntelliSense 等功能,请使用 Excel 中的 Python 代码编辑器。
输出类型
使用公式栏中的 Python 输出菜单控制如何返回 Python 计算。 以 Python 对象的形式返回计算,或将计算转换为 Excel 值,并将其直接输出到单元格。 以下屏幕截图显示了以 Excel 值的形式返回的 Python 公式。
提示: 你还可以使用上下文菜单更改 Python 输出类型。 打开上下文菜单,转到“Python 输出”,然后选择所需的输出类型。
以下屏幕截图显示了与前面的屏幕截图相同的 Python 公式,现在则是以 Python 对象的形式返回。 当公式以 Python 对象的形式返回时,单元格将显示一个卡片图标。
注意: 以 Excel 值的形式返回的公式结果将转换为其最接近的 Excel 等效值。 如果计划在将来的 Python 计算中重复使用该结果,建议将结果作为 Python 对象返回。 如果以 Excel 值的形式返回结果,则可以对值运行 Excel 分析,例如 Excel 图表、公式和条件格式。
Python 对象会在单元格中包含附加信息。 若要查看其他信息,请通过选择卡片图标打开卡片。 卡片上显示的信息是对象的预览,这在处理大型对象时很有用。
Excel 中的 Python 可以将多种类型的数据作为 Python 对象返回。 Excel 中的 Python 的一种实用数据类型是 DataFrame 对象。 若要了解有关 Python DataFrame 的详细信息,请参阅 Excel 中的 Python DataFrame。
导入外部数据
使用 Excel 中的 Python 处理的所有数据都必须来自工作表或通过Power Query 获得。 若要导入外部数据,请使用 Excel 中的“获取并转换”功能访问Power Query。 有关详细信息,请参阅使用 Power Query 为 Excel 中的 Python 导入数据。
重要: 为了保护安全性,Python 中的常见外部数据函数(例如 pandas.read_csv 和 pandas.read_excel)与 Excel 中的 Python 不兼容。 若要了解详细信息,请参阅数据安全性和 Excel 中的 Python。
计算次序
传统的 Python 语句从上到下进行计算。 在使用 Excel 中的 Python 的单元格中,Python 语句也是如此 - 它们从上到下进行计算。 但在使用 Excel 中的 Python 的工作表中,Python 单元格将按行优先顺序进行计算。 单元格计算将在整个行内运行(从 A 列到 XFD 列),然后是工作表内下面的每一行。
Python 语句是有序的,因此每个 Python 语句都隐式依赖于在计算顺序中紧靠在其之前的 Python 语句。
在工作表中定义和引用变量时,计算顺序很重要,因为必须先定义变量,然后才能引用它们。
重要: 行优先计算顺序也适用于工作簿中的不同工作表,并且基于工作簿中工作表的顺序。 如果在使用 Excel 中的 Python 分析数据时使用了多个工作表,请确保在分析数据的单元格和工作表之前的单元格和工作表中包含数据以及存储数据的任何变量。
重新计算
当 Python 单元格的依赖值发生变化时,系统将按顺序重新计算所有 Python 公式。 若要暂停 Python 重新计算并提高性能,请使用“部分计算”或“手动计算”模式。 这些模式允许你在准备就绪后触发计算。 若要更改此设置,请转到功能区并选择“公式”,然后打开“计算选项”。 接下来,选择所需的计算模式。 “部分计算”和“手动计算”模式会暂停 Python 和数据表的自动重新计算。
通过在 Python 开发期间禁用工作簿中的自动重新计算,可以提高性能和单个 Python 单元格计算的速度。 但是,你必须手动重新计算该工作簿,以确保每个 Python 单元格中的准确性。 可通过三种方法在“部分计算”或“手动计算”模式下手动重新计算工作簿。
-
使用键盘快捷方式 F9。
-
转到功能区中的“公式”>“立即计算”。
-
转到具有过时值的单元格(使用删除线格式显示),然后选择该单元格旁边的错误符号。 然后从菜单中选择“立即计算”。
错误
Excel 中的 Python 计算可能会在 Python 单元格中返回 #PYTHON!、#BUSY! 和 #CONNECT! 等 错误。 若要了解详细信息,请参阅排除 Excel 中的 Python 错误。