命令行xlwings addin install无法cmd中执行的替代方法

加载项 · xlwings中文文档 · 看云

加载项

xlwings加载项是能够使用RunPythonUDFs的首选方式。 请注意,如果您只想通过xlwings从Python操作Excel,则不需要加载项。

注意
加载项的功能区与Windows上的Excel> = 2007和Mac上的> = 2016兼容。 但是,您可以使用早期版本的加载项,但您需要直接在配置文件中更改设置,请参阅下文。 在Mac上,所有与UDF相关的功能都不可用。

注意
加载项使用密码xlwings进行密码保护。 要进行调试或添加新扩展,您需要取消保护。

安装

要安装加载项,最简单的方法是使用命令行客户端:xlwings addin install。 从技术上讲,这会将Python的安装目录中的加载项复制到Excel的XLSTART文件夹中(方法1.将xlwings安装包下的xlwings.xlam复制到excel的对应目录下)。 如果您遇到问题,那么您也可以从GitHub发布页面下载加载项(xlwings.xlam)(确保下载相同内容) 版本作为Python包的版本)(方法2))。 下载后,您可以通过转到开发工具>加载项>浏览来安装该加载项。 如果您没有在功能区中看到开发工具作为选项卡,请确保首先在文件>选项>自定义功能区(Mac:Cmd +,>功能区和工具栏)下激活选项卡。

 

 

然后,要在工作簿中使用RunPythonUDFs,你需要在VBA编辑器中设置对xlwings的引用,参见截图(Windows:工具> 引用...,Mac:它在下面 VBA编辑器的左下角)。 请注意,当您通过xlwings quickstart创建工作簿时,已经设置了引用。

全局设置

虽然默认设置通常是开箱即用的,但您可以直接在加载项中更改全局设置:

  • Interpreter: 这是Python解释器的路径。 这也适用于Mac上的虚拟或conda环境。 如果你在Windows上使用conda envs,那么请使用下面的Conda BaseConda 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留空或将其设置为pythonpythonw
  • UDF Modules: 从中导入UDF的Python模块的名称(没有.py扩展名)。 用";"分隔多个模块。 示例:UDF_MODULES ="common_udfs; myproject"默认导入与Excel电子表格相同的目录中的文件,该文件具有相同的名称,但以.py结尾。
  • Debug UDFs: 如果要手动运行xlwings COM服务器进行调试,请选中此框,请参阅调试
  • Log File: 为默认位置留空(见下文)或提供完整路径,例如。
  • RunPython: Use UDF Server: 对于RunPython使用与UDF相同的COM服务器。 这将更快,因为解释器在每次调用后都不会关闭。
  • Restart UDF Server: 这会关闭UDF Server / Python解释器。 它将在下一个函数调用时重新启动。

注意
如果你使用Conda BaseConda Env和UDF,你当前无法隐藏弹出的命令提示符。 您仍然可以通过分别将Interpreter设置为pythonpythonw来控制输出是否打印到命令提示符。

全局配置:功能区/配置文件

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",""

注意
Mac Excel 2011用户必须在~/.xlwings/xlwings.conf下手动创建和编辑配置文件,因为不支持功能区。

工作簿目录配置:配置文件

通过在工作簿的目录中创建xlwings.conf文件,可以为一个或多个工作簿覆盖功能区/配置文件的全局设置。

工作簿配置:xlwings.conf工作表

特定于工作簿的设置将覆盖全局(功能区)和工作簿目录配置文件:通过在名称为"xlwings.conf"的工作表中列出配置键/值对来设置工作簿特定设置。 当您使用xlwings quickstart创建一个新项目时,它已经有了这样的工作表,但您需要将其重命名为xlwings.conf以使其处于活动状态。

替代方案:独立VBA模块

有时,运行xlwings代码而不必先安装加载项可能很有用。 为此,在创建新项目时需要使用standalone选项:xlwings quickstart myproject --standalone

这会将加载项的内容添加为单个VBA模块,因此您无需再设置对加载项的引用。 如果不使用名为xlwings.conf的工作表覆盖它们,它仍将从xlwings.conf中读取。

如果你想在一个 Office Add-in 拦截剪切板事件,可以使用 Office.js 的 API 来实现。具体来说,你可以使用 Office.js 的 Binding API 来创建一个与剪切板相关的数据绑定,然后通过该绑定来获取剪切板的数据。 下面是一个简单的示例代码,演示了如何在 Word Add-in 拦截剪切板事件: ```javascript Office.context.document.bindings.addFromSelectionAsync( Office.BindingType.Text, { id: "clipboardBinding" }, function (result) { if (result.status === Office.AsyncResultStatus.Succeeded) { var clipboardBinding = result.value; clipboardBinding.addHandlerAsync( Office.EventType.BindingDataChanged, onClipboardDataChanged); } else { console.log("Failed to create clipboard binding: " + result.error.message); } } ); function onClipboardDataChanged(eventArgs) { // 处理剪切板数据变化事件 console.log("Clipboard data changed: " + eventArgs.bindingData); } ``` 在这个示例代码,我们首先使用 `addFromSelectionAsync` 函数创建了一个文本数据绑定,并指定了一个 ID 为 "clipboardBinding"。然后,我们通过 `addHandlerAsync` 函数注册了一个事件处理程序 `onClipboardDataChanged`,该处理程序会在剪切板数据发生变化时被调用。 在 `onClipboardDataChanged` 处理程序,我们可以通过 `eventArgs.bindingData` 属性获取到剪切板的文本数据,并对其进行处理。需要注意的是,Office Add-in 的数据绑定是异步操作,因此需要在处理程序使用异步操作和回调函数来确保正确的执行顺序和异常处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值