You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

合并Angular Excel Add-in与自定义函数后函数不显示问题排查

解决Excel插件合并任务面板与自定义函数后自定义函数不显示的问题

看起来你已经完成了大部分正确的整合步骤,但有几个关键细节可能导致自定义函数无法正常加载:

1. 错误指向TypeScript源文件而非编译后的JavaScript文件

浏览器无法直接执行.ts文件,你的manifest里JS-URL指向的是TypeScript源文件,这是核心问题之一:

<bt:Url id="JS-URL" DefaultValue="https://localhost:3000/src/functions/functions.ts"/>

你需要将其改为编译后的.js文件路径。如果你的Angular项目默认把TypeScript编译到对应目录,应该调整为:

<bt:Url id="JS-URL" DefaultValue="https://localhost:3000/src/functions/functions.js"/>

同时可以直接在浏览器地址栏输入这个JS文件的URL,确认文件能正常访问,避免路径错误或编译未生成文件的问题。

2. DefaultSettings的SourceLocation可能造成加载冲突

在manifest的基础设置部分,你把默认源指向了自定义函数的HTML页面:

<DefaultSettings>
  <SourceLocation DefaultValue="https://localhost:3000/src/functions/functions.html" />
</DefaultSettings>

对于同时包含任务面板和自定义函数的插件,这个旧版TaskPane模式的设置可能干扰自定义函数的加载逻辑。建议将其改为任务面板的入口页面(也就是你VersionOverrides中配置的index.html):

<DefaultSettings>
  <SourceLocation DefaultValue="https://localhost:3000/index.html" />
</DefaultSettings>

3. 确认Angular打包配置包含自定义函数代码

Angular默认打包流程不会自动包含自定义函数的代码,你需要额外确认:

  • 在angular.json中添加自定义函数的入口,或调整打包配置,确保functions.ts被正确编译并输出到可访问路径
  • 自定义函数代码中正确注册了命名空间,比如要有类似这样的代码:
    CustomFunctions.associate("CONTOSO", {
      // 你的自定义函数定义
    });
    
    这里的命名空间CONTOSO必须和manifest中namespace资源的DefaultValue完全一致。

4. 验证自定义函数元数据文件(functions.json)的正确性

检查functions.json的路径是否正确,同时确认文件内容符合规范:

  • 每个函数的name、description、parameters、result等字段无遗漏或语法错误
  • 确保JSON格式合法(比如没有遗漏逗号、引号匹配等问题)

最后一步:重新加载插件

修改完manifest后,需要在Excel网页版中移除旧插件,重新加载新的manifest文件,确保所有配置更改生效。

内容的提问来源于stack exchange,提问作者Jim B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:00:05