Anaconda 代码#
Anaconda Code 使您能够编写 Python 代码并直接在 Excel 中在本地运行它。这使您可以灵活地控制工作簿中的 Python 环境,从而允许您根据需要添加和删除包,同时将代码和数据安全地保存在工作簿中。
初始化 Anaconda 代码#
注意
Anaconda Code 包含在 Anaconda Toolbox 安装中。
Anaconda Code 由 PyScript 提供支持,PyScript 是我们用于在浏览器中运行 Python 的开源平台。首次启动 Anaconda Code 时,请使用以下步骤设置并运行 PyScript Python 环境:
单击 Enable PyScript(启用 PyScript)。
启用 PyScript 后,登录到 Anaconda Cloud。
了解 Anaconda 代码#
让我们使用 Dashboard 选项卡来看看 Anaconda Code 中的不同元素以供参考:

- 挡泥板
创建和运行 Python 代码并查看脚本日志
- 导入和定义
自定义影响工作簿中所有代码的代码
- 运行环境
管理编码环境的包和 Pyodide 版本
- 设置
- 帐户
查看配置文件、订阅和应用程序详细信息
- 代码
查看和编辑整个工作簿中的代码
- 原木
查看错误并打印对账单
- 更多
快速确认代码的单元格链接状态
- 新代码
创建要在工作簿中运行的新代码
运行 Python 代码#
使用以下步骤创建可以运行 Python 代码的 Anaconda Code 单元格:
在 Dashboard 中 ,单击 New (新建),然后选择要在其中插入代码的单元格。或者,选择一个单元格,键入 =ANACONDA。CODE(),然后按 Enter 键 (Windows)/Return 键 (Mac)。
在代码编辑器中输入 Python 代码。如果要在代码中引用电子表格或 Anaconda Code 对象中的数据范围,请单击 Link Range 并选择单元格范围或 PyScript Data 单元格。
使用
REF
功能当您使用 Link Range 时,Anaconda Code 会创建一个
REF
函数返回列表列表。的 Imports and Definitions 选项卡包括以下预定义函数,以帮助将返回的列表列表转换为不同的数据结构。Function
Use case
Notes
to_df(REF(<CELL_RANGE>))
Create a DataFrame
to_df
assumes your data has headersto_array(REF(<CELL_RANGE>))
Create a NumPy array
to_array
assumes all data is of the same typeto_list(REF(<CELL_RANGE>))
Create a 1D list
to_list
handles wide (1 x n) or tall (n x 1) data您可以更改
to_df()
,to_array()
和to_list()
从 Imports and Definitions 选项卡。设置单元格链接和输出选项。
注意
通过单击 插件按钮在 isolated 和 linked 模式之间切换。
单击 Save and Run(保存并运行)。
所选单元格现在是 Anaconda Code 单元格。Anaconda Code 单元格运行您的代码并显示最后一个表达式的返回值。
注意
如果您编写的代码没有返回值(例如,您定义了一个函数但不调用该函数)并单击 Run,则单元格将显示“None”。
编辑 Python 代码#
不要在单元格本身中编辑代码;相反,请直接在 Anaconda Code 中修改并重新运行您的代码。
注意
用户需要 Anaconda.cloud 帐户才能编辑共享代码。
在 Dashboard 中,单击 Edit in full view 以打开编辑视图。
调整代码,然后单击 Run。
管理环境#
Anaconda Code 托管一个独立的环境,该环境管理后端软件包,使您能够在 Excel 工作簿中运行 Python 代码。您可以在此环境中管理软件包,以扩展 Python 的处理、可视化和分析功能,甚至可以选择要运行 Python 的 Pyodide(PyScript 使用的 WASM 引擎)版本。
注意
您可以随时更改您的环境;但是,与所有软件项目一样,更改环境会更改底层代码的解释方式,并可能导致意外的复杂性。
选择 Pyodide 版本#
默认情况下,所有新电子表格都使用最新版本的 Pyodide。对于现有电子表格,代码所需的 Pyodide 版本和包将固定到环境中。
您可以使用以下步骤切换 Pyodide 的版本:
在 Environment 选项卡中,单击 Edit。
要切换 Pyodide 的版本,请单击当前 Pyodide 版本旁边的
管理软件包#
在 Environment 选项卡中,单击 Edit。
要添加新包,请单击 Add (添加)。或者,单击箭头以从 PyPI、PyScript 应用程序或直接下载链接到 Python 轮 (
.whl
).

注意
包含已编译代码的软件包可能与 PyScript 的 WASM 引擎不兼容。有关更多信息,请访问 PyScript.net。
要删除包,请单击要删除的包旁边的 Delete。
自定义代码初始化#
您可以将 Anaconda Code 的 Imports 和 Definitions 视为代码的初始化文件,或者类似于 Jupyter Notebook 中的第一个单元格。此部分中的所有代码都可用于所有单元,无论它们是独立运行还是链接运行。
进口
要自定义代码的导入,请执行以下作:
在 Imports and Definitions (导入和定义) 选项卡上,通过在
# Add imports
评论。注意
您只能
import
从标准 Python 安装中包含的软件包以及 Environment (环境) 选项卡中列出的软件包中。单击 Run。
定义
要自定义代码的定义,请执行以下作:
在 Imports and Definitions 选项卡中,在
# Define classes and functions
评论。注意
Anaconda Code 带有三个预定义的函数:
to_df(data)
,to_array(data)
和to_list(data)
.请参阅运行 Python 代码以了解有关使用这些函数的更多信息。单击 Run。
现在,您可以在 Anaconda 代码编辑器中调用您的定义。要直接从 Excel 单元格调用函数,请按照 创建用户定义的函数 中的步骤作。
创建用户定义的函数#
用户定义的函数 (UDF) 允许您编写 Python 函数、装饰它们并直接从 Excel 调用它们。
创建和调用 UDF
在 Imports and Definitions 选项卡中,使用
@UDF
,如以下示例所示:@UDF def my_custom_function(x, y): return x ** y
单击 Save and Run(保存并运行)。
在打开的单元格中,输入
=ANACONDA
.如果您将上面的示例添加到定义列表中,则调用ANACONDA.MY_CUSTOM_FUNCTION
显示在下拉列表中。向下箭头到
ANACONDA.MY_CUSTOM_FUNCTION
,按 Tab 键,然后完成该功能。使用 Ctrl+Enter (Windows)/Ctrl+Return (Mac) 运行代码。
提示
如果您希望 UDF 使用函数名称以外的名称,请使用name
参数提供唯一名称。设置nested
设置为 False 以删除ANACONDA.
从名称中。
@UDF(name="MYBANK.PORTFOLIO_ANALYSIS", nested=False)
def my_custom_function(x, y):
return x ** y
使用 Range 参数
指定UDF.Range
参数告诉 Excel 函数的输入或输出是 2D 范围。如果不指定此项,Excel 将拒绝将单元格区域作为输入传递,或允许从函数返回溢出的区域。
的示例用法.Range
:
@UDF
def square_me(data: UDF.Range) -> UDF.Range:
return [[val ** 2 for val in row] for row in data]
您还可以使用 Ranges 添加类型提示UDF.Range[str]
例如。
修改工作簿设置#
虽然您可以在创建和编辑代码时根据具体情况调整在工作簿中运行代码的设置,但您也可以从 Settings (设置) 选项卡分配默认设置。
单元格链接#
Mode |
Description |
---|---|
Run Isolated |
Code runs independently of other cells. Variables declared in previous Anaconda Code cells cannot be referenced. Other cells can reference the return value through the |
Run Linked |
Anaconda Code cells run in row major order, comparable to how Python in Excel is executed. Variables declared in one cell can be referenced in cells following the cell that initializes them. When one cell is calculated, all linked cells recalculate in order. Linked cells run left-to-right, top-to-bottom, and can access objects defined in previously linked cells. |
电池片输出#
Output |
|
---|---|
Excel Values |
When outputting a DataFrame, array, list, etc., the values will “spill” to fill the required space. If the spill were to overwrite cells containing data, the cell displays a #SPILL error. |
Local Python Object |
For certain object types, you can view the contents in a “Card View” by clicking the cell. You can reference this cell and the returned object like you would any other Python object. |
故障排除#
如果您遇到此处未列出的问题,您可以通过 Anaconda 社区或打开支持票证来获得对 Anaconda 的支持。
安装 Functions 时出错#
原因
当 Excel 加载 Anaconda Toolbox 加载项并注册其自定义函数时,可能会发生此错误。此错误发生在 Excel 中,Anaconda Toolbox 无法解决。
解决方案
关闭并重新打开 Excel。如果问题仍然存在,请卸载 Anaconda Toolbox 加载项,然后重新安装。