如何为 XLL 兼容的自定义函数匹配 XLL [剧透:你不知道]
How to match XLL for XLL compatible custom functions [Spoiler: you don't]
为了实现与现有 XLL 的兼容性,我想在我的 Excel 加载项的清单中识别等效的 XLL。我现有的加载项正在使用 XLL 技术,但它是通过使用 Add-In Express 的第 3 方库来实现的。所以在我的例子中,自定义函数也包含在 dll 中,它还包含加载项的 COM UI 部分。所以我没有物理xll文件。
因为我找到了等效 COM 加载项的信息,Excel 在以下位置搜索匹配的 ProgId
- Computer\HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins
- Computer\HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Excel\Addins
Excel 正在寻找匹配的 XLL 文件的相应位置是什么?
我想看看 Add-In-Express 添加了什么,然后用它来引用它作为 XLL 等效文件的文件名。
ProdId是匹配的key。您可以只将占位符名称作为文件名,它应该可以工作。
请注意,在注册兼容函数之前,不应注册和加载真实 XLL 的函数,这一点很重要。否则以下兼容函数无法覆盖现有的 XLL 函数。真正的 XLL 函数总是优先于兼容函数。
Excel->文件->选项->加载项是否是查看和管理 Microsoft Office 加载项(包括 COM 加载项和 Excel-加载项)的正确位置?
要为您的 Office-JS-Excel 加载项启用 XLL 兼容的自定义函数,请按照文档中的说明将相应的 EquivalentAddin 标记添加到您的清单中。
XLL 类型的 EquivalentAddin 声明可实现兼容性。如果有XLL自定义函数,则只匹配函数名,不匹配具体的XLL。所以你在 FileName 标签中输入什么并不重要。
为了实现与现有 XLL 的兼容性,我想在我的 Excel 加载项的清单中识别等效的 XLL。我现有的加载项正在使用 XLL 技术,但它是通过使用 Add-In Express 的第 3 方库来实现的。所以在我的例子中,自定义函数也包含在 dll 中,它还包含加载项的 COM UI 部分。所以我没有物理xll文件。
因为我找到了等效 COM 加载项的信息,Excel 在以下位置搜索匹配的 ProgId
- Computer\HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins
- Computer\HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Excel\Addins
Excel 正在寻找匹配的 XLL 文件的相应位置是什么?
我想看看 Add-In-Express 添加了什么,然后用它来引用它作为 XLL 等效文件的文件名。
ProdId是匹配的key。您可以只将占位符名称作为文件名,它应该可以工作。
请注意,在注册兼容函数之前,不应注册和加载真实 XLL 的函数,这一点很重要。否则以下兼容函数无法覆盖现有的 XLL 函数。真正的 XLL 函数总是优先于兼容函数。
Excel->文件->选项->加载项是否是查看和管理 Microsoft Office 加载项(包括 COM 加载项和 Excel-加载项)的正确位置?
要为您的 Office-JS-Excel 加载项启用 XLL 兼容的自定义函数,请按照文档中的说明将相应的 EquivalentAddin 标记添加到您的清单中。
XLL 类型的 EquivalentAddin 声明可实现兼容性。如果有XLL自定义函数,则只匹配函数名,不匹配具体的XLL。所以你在 FileName 标签中输入什么并不重要。