# 加载项
![](https://i.vgy.me/liWSga.png)
xlwings加载项是能够使用`RunPython`或`UDFs`的首选方式。 请注意,如果您只想通过xlwings从Python操作Excel,则不需要加载项。
>[info]注意
加载项的功能区与Windows上的Excel> = 2007和Mac上的> = 2016兼容。 但是,您可以使用早期版本的加载项,但您需要直接在配置文件中更改设置,请参阅下文。 在Mac上,所有与UDF相关的功能都不可用。
>[info]注意
加载项使用密码`xlwings`进行密码保护。 要进行调试或添加新扩展,您需要取消保护。
## 安装
要安装加载项,最简单的方法是使用命令行客户端:`xlwings addin install`。 从技术上讲,这会将Python的安装目录中的加载项复制到Excel的`XLSTART`文件夹中。 如果您遇到问题,那么您也可以从[GitHub发布页面](https://github.com/ZoomerAnalytics/xlwings/releases)下载加载项(`xlwings.xlam`)(确保下载相同内容) 版本作为Python包的版本)。 下载后,您可以通过转到`开发工具>加载项>浏览`来安装该加载项。 如果您没有在功能区中看到`开发工具`作为选项卡,请确保首先在`文件>选项>自定义功能区`(Mac:`Cmd +,>功能区和工具栏`)下激活选项卡。
然后,要在工作簿中使用`RunPython`或`UDFs`,你需要在VBA编辑器中设置对`xlwings`的引用,参见截图(Windows:`工具> 引用...`,Mac:它在下面 VBA编辑器的左下角)。 请注意,当您通过`xlwings quickstart`创建工作簿时,已经设置了引用。
![](https://i.vgy.me/KojBOa.png)
## 全局设置
虽然默认设置通常是开箱即用的,但您可以直接在加载项中更改全局设置:
* `Interpreter`: 这是Python解释器的路径。 这也适用于Mac上的虚拟或conda环境。 如果你在Windows上使用conda envs,那么请使用下面的`Conda Base`和`Conda Env`。 示例:`"C:\Python35\pythonw.exe"`或`"/usr/local/bin/python3.5"`。 一个空字段默认为`pythonw`,它要求在Windows上的`PATH`或Mac上的`.bash_profile`中设置解释器。
* `PYTHONPATH`: 如果找不到代码的源文件,请在此处添加路径。
* `Conda Base`: 如果您使用的是Windows并使用conda env,请在此处键入Anaconda或Miniconda安装的基本名称,例如: `C:\Users\Username\Miniconda3`或`%USERPROFILE%\Anaconda`。 请注意,您至少需要conda 4.6!
* `Conda Env`: 如果您使用的是Windows并使用conda env,请在此输入您的conda env的名称,例如:`myenv`。 请注意,这要求您将`Interpreter`留空或将其设置为`python`或`pythonw`。
* `UDF Modules`: 从中导入UDF的Python模块的名称(没有.py扩展名)。 用";"分隔多个模块。 示例:`UDF_MODULES ="common_udfs; myproject"`默认导入与Excel电子表格相同的目录中的文件,该文件具有相同的名称,但以`.py`结尾。
* `Debug UDFs`: 如果要手动运行xlwings COM服务器进行调试,请选中此框,请参阅[调试](debugging.md)。
* `Log File`: 为默认位置留空(见下文)或提供完整路径,例如。
* `RunPython: Use UDF Server`: 对于RunPython使用与UDF相同的COM服务器。 这将更快,因为解释器在每次调用后都不会关闭。
* `Restart UDF Server`: 这会关闭UDF Server / Python解释器。 它将在下一个函数调用时重新启动。
>[info]注意
如果你使用`Conda Base`和`Conda Env`和UDF,你当前无法隐藏弹出的命令提示符。 您仍然可以通过分别将`Interpreter`设置为`python`或`pythonw`来控制输出是否打印到命令提示符。
## 全局配置:功能区/配置文件
xlwings功能区中的设置存储在配置文件中,该文件也可以在外部进行操作。 位置是
* Windows: 您的用户文件夹中的`.xlwings\xlwings.conf`
* Mac Excel 2016: `~/Library/Containers/com.microsoft.Excel/Data/xlwings.conf`
\# Mac Excel 2011: `~/.xlwings/xlwings.conf`
格式如下(键为大写):
~~~
"INTERPRETER","pythonw"
"PYTHONPATH",""
~~~
>[info]注意
Mac Excel 2011用户必须在`~/.xlwings/xlwings.conf`下手动创建和编辑配置文件,因为不支持功能区。
## 工作簿目录配置:配置文件
通过在工作簿的目录中创建`xlwings.conf`文件,可以为一个或多个工作簿覆盖功能区/配置文件的全局设置。
## 工作簿配置:xlwings.conf工作表
特定于工作簿的设置将覆盖全局(功能区)和工作簿目录配置文件:通过在名称为"xlwings.conf"的工作表中列出配置键/值对来设置工作簿特定设置。 当您使用`xlwings quickstart`创建一个新项目时,它已经有了这样的工作表,但您需要将其重命名为`xlwings.conf`以使其处于活动状态。
![](https://i.vgy.me/EBLtdD.png)
## 替代方案:独立VBA模块
有时,运行xlwings代码而不必先安装加载项可能很有用。 为此,在创建新项目时需要使用`standalone`选项:`xlwings quickstart myproject --standalone`。
这会将加载项的内容添加为单个VBA模块,因此您无需再设置对加载项的引用。 如果不使用名为`xlwings.conf`的工作表覆盖它们,它仍将从`xlwings.conf`中读取。
## 日志文件默认位置
这些日志文件用于错误弹出窗口:
* Windows: `%APPDATA%\xlwings.log`
* Mac with Excel 2011: `/tmp/xlwings.log`
* Mac with Excel 2016: `~/Library/Containers/com.microsoft.Excel/Data/xlwings.log`