开始开发 Excel 自定义函数

借助自定义函数,开发人员现在可以在 Excel 中添加新函数,方法是在 JavaScript 或 TypeScript 中将这些函数定义为加载项的一部分。 Excel 用户可以访问自定义函数,就像他们访问 Excel 中的任何本机函数一样,比如 SUM()

先决条件

  • Node.js(最新LTS 版本)。 访问 Node.js 站点 ,下载并安装适合你的操作系统的版本。

  • 最新版本的 Yeoman 和适用于 Office 加载项的 Yeoman 生成器。若要全局安装这些工具,请从命令提示符处运行以下命令。

    npm install -g yo generator-office
    

    注意

    即便先前已安装了 Yeoman 生成器,我们还是建议你通过 npm 将包更新为最新版本。

  • 已连接到 Microsoft 365 订阅的 Office (包括 Office 网页版)。

    注意

    如果你还没有 Office,你可能有资格通过 Microsoft 365 开发人员计划获得Microsoft 365 E5开发人员订阅;有关详细信息,请参阅常见问题解答。 或者,可以 注册 1 个月的免费试用版购买 Microsoft 365 计划

生成首个自定义函数项目

首先,使用 Yeoman 生成器创建自定义函数项目。 这将为你的项目设置开始对自定义函数进行编码所需的正确文件夹结构、源文件和依存关系。

  1. 运行以下命令,使用 Yeoman 生成器创建加载项项目。 包含项目的文件夹将添加到当前目录。

    yo office
    

    注意

    运行该yo office命令时,可能会收到有关 Yeoman 和 Office 加载项 CLI 工具的数据收集策略的提示。 根据你的需要,使用提供的信息来响应提示。

    出现提示时,请提供以下信息以创建加载项项目。

    • 选择项目类型:Excel Custom Functions using a Shared Runtime
    • 选择脚本类型:JavaScript
    • 要为外接程序命名什么名称?My custom functions add-in

    Yeoman Office 外接程序生成器命令行界面提示自定义函数项目。

    Yeoman 生成器将创建项目文件并安装支持的 Node 组件。

  2. Yeoman 生成器将在命令行中为你提供有关如何处理项目的说明,但请忽略它们并继续按照我们的说明进行操作。 导航到项目的根文件夹。

    cd "My custom functions add-in"
    
  3. 生成项目。

    npm run build
    
  4. 启动在 Node.js 中运行的本地 Web 服务器。 你可以在 Excel 中尝试使用自定义函数加载项。 系统可能会提示你打开加载项的任务窗格,不过这是可选的。 你仍可在不打开加载项的任务窗格的情况下运行自定义函数。

若要在Excel 网页版中测试加载项,请运行以下命令。 运行此命令时,本地 Web 服务器将启动。 将 "{url}" 替换为你拥有权限的 OneDrive 或 SharePoint 库上 Excel 文档的 URL。

注意

如果在 Mac 上进行开发,请将 括 {url} 在单引号中。 请勿在 Windows 上执行此操作。

npm run start:web -- --document {url}

示例如下。

  • npm run start:web -- --document https://contoso.sharepoint.com/:t:/g/EZGxP7ksiE5DuxvY638G798BpuhwluxCMfF1WZQj3VYhYQ?e=F4QM1R
  • npm run start:web -- --document https://1drv.ms/x/s!jkcH7spkM4EGgcZUgqthk4IK3NOypVw?e=Z6G1qp
  • npm run start:web -- --document https://contoso-my.sharepoint-df.com/:t:/p/user/EQda453DNTpFnl1bFPhOVR0BwlrzetbXvnaRYii2lDr_oQ?e=RSccmNP

如果外接程序未在文档中旁加载,请按照手动旁加载加载项中的说明手动旁加载到Office web 版

注意

即使在开发过程中,Office 外接程序也应使用 HTTPS,而不是 HTTP。 如果在运行以下命令之一后系统提示安装证书,请接受安装 Yeoman 生成器提供的证书的提示。 你可能还必须以管理员身份运行命令提示符或终端才能进行更改。

尝试使用预生成的自定义函数

使用 Yeoman 生成器创建的自定义函数项目包含一些预生成的自定义函数,这些函数在 ./src/functions/functions.js 文件中定义。 项目根目录中的 ./manifest.xml 文件指定所有自定义函数均属于 CONTOSO 命名空间。

在 Excel 工作簿中,通过完成以下步骤尝试使用 ADD 自定义函数。

  1. 选择一个单元格,然后键入 =CONTOSO。 请注意,自动完成菜单将显示 CONTOSO 命名空间中所有函数的列表。

  2. 通过在单元格中指定值 =CONTOSO.ADD(10,200) 并按 Enter 来运行 CONTOSO.ADD 函数,并将数字 10200 作为输入参数。

ADD 自定义函数计算指定为输入参数的两个数字的总和。 键入 =CONTOSO.ADD(10,200) 应在按下 Enter 后在单元格中生成结果 210

如果 CONTOSO 命名空间在自动完成菜单中不可用,请执行以下步骤在 Excel 中注册加载项。

  1. 在 Excel 中,选择“ 主页>加载项”,然后选择“ 更多加载项”。

  2. 在“ 我的外接程序 ”选项卡中,选择“ 管理我的外接程序 ”,然后选择 “上传我的外接程序”。

  3. 选择“浏览...”,并导航到 Yeoman 生成器创建的项目的根目录。

  4. 依次选择文件“manifest.xml”,“打开”,然后选择“上载”

  5. 尝试使用新函数。 在单元格 B1 中,键入文本 =CONTOSO.GETSTARCOUNT("OfficeDev", "Excel-Custom-Functions"),然后按 Enter。 你会看到,单元格 B1 中的结果便是 Excel-Custom-Functions Github 存储库所获得的星星的当前数目。

后续步骤

祝贺你,你已成功在 Excel 加载项中创建自定义函数! 接下来,可生成具有流式数据功能的更复杂的加载项。 通过以下链接,可了解 Excel 自定义函数加载项教程中的后续步骤。

疑难解答

如果多次运行快速入门,可能会遇到问题。 如果 Office 缓存已具有同名函数的实例,则加载项在旁加载时会收到错误。 在运行 npm run start 之前,可以通过清除 Office 缓存来阻止此操作。

Excel 中标题为“安装函数时出错”的错误消息。它包含文本“未安装此加载项,因为已存在同名的自定义函数”。

另请参阅