了解 Office Javascript API

已完成

在此单元中,你将了解 Office 加载项编程模型、开发人员工具,以及用于 Excel、Outlook 和 Word 的 Office JavaScript API 的功能。

了解 Office 加载项编程模型

Office 加载项编程模型依赖于两个 JavaScript 对象模型:

  • 特定于主机的 JavaScript API - Excel 和 Word 的特定于主机的 API 提供键入的对象,可用于访问主机应用程序中的特定元素。 例如,Excel API 包含表示工作表、区域、表格、图表等的对象。
  • 常用 API - 通过 Office 2013 引入,该通用 API 可用于访问以下功能:
    • UI
    • 对话框
    • 多种类型的 Office 应用程序中常用的客户端设置

自定义函数使用的编程模型略有不同,将在稍后单元中介绍。

Office JavaScript API 需求集

不一定总能控制用户安装的 Office 版本。 加载项支持的 API 和功能不同,具体取决于运行的 Office 版本和平台。 例如,Office 2016 支持的功能比 Office 2013 多。 为应对这种情况,我们提供了要求集,可帮助确定 Office 主机是否支持 Office 加载项中所需的功能。

要求集可以特定于 Office 主机,例如 ExcelApi 1.7 集,或特定于多个主机的公用,例如对话框 API。 要求集支持因 Office 主机和主机版本而异。

借助 isSetSupported。 如果支持要求集, isSetSupported 返回 true ,且加载项可运行使用该要求集的 API 成员的额外代码。 如果 Office 主机不支持要求集, isSetSupported 返回 false ,额外代码不会运行。 以下代码显示与 isSetSupported结合使用的语法。

if (Office.context.requirements.isSetSupported(RequirementSetName, MinimumVersion)) {
  // Code that uses API members from RequirementSetName.
}

注意

Office 预览体验计划

若要在任何 Office 主机上实现最早或每月更改,可以加入 Office 预览体验计划。 此计划仅适用于 Windows 电脑,需要 Microsoft 365 订阅。 从任意 Office 应用程序中,“文件”>“帐户”>“Office 预览体验计划”以快速加入计划。

使用 Office JavaScript API

若要使用这些 API,在 Office.js 内容交付网络 (CDN) 上引用它们,方法通常是将下列任一代码语句添加到页面的 <head> 标记。

<!-- Reference the production APIs on the CDN -->
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
<!-- Reference the beta/preview APIs on the CDN -->
<script src="https://appsforoffice.microsoft.com/lib/beta/hosted/office.js" type="text/javascript"></script>

除添加首选 CDN 链接外,所有 Office 加载项都需要 Office.onReady() 呼叫。 将加载项代码放在此方法中,在 Office.js 库初始化后将调用它。 在 onReady() 方法中,可以通过检查 Office.HostType 数值(例如, ExcelWord)来确定运行的加载项。 您可以使用Office.PlatformType枚举值(例如,PCMac)检查外接程序在哪个平台上运行。

如果使用的是包含自己的初始化处理程序或测试的其他 JavaScript 框架,则应将它们放置在对 Office.onReady() 的响应中。 例如,可引用 jQuery 的 $(document).ready() 函数,如以下代码示例所示。

Office.onReady(function() {
  // Office is ready.
  $(document).ready(function () {
    // The document is ready.
  });
});

使用代理对象进行异步调用

处理文档时,请求的读取或写入操作使用代理对象分批处理。 在调用其他方法之前,API 调用不会实际读取或更新 sync() 文档。

为提高安全性,加载项在不能直接访问文档的沙盒 JavaScript 环境中运行,或其他加载项。Office 加载项平台可提供一 RequestContext ,而该平台又提供代理对象来表示文档(例如工作表、范围和表)。 文件 RequestContext 通常作为名为 context的参数传递到。 可以使用对象 context 获取处理文档所需的任何代理对象。

必须加载属性才能读取代理对象的属性,才能使用 Office 文档中的数据填充代理对象。 为此,可调用代理 load() 的任何属性的代理方法。 然后调用 context.sync() 方法,此方法将加载所有请求的属性。 例如,如果创建代理区域对象以在 Excel 工作表中处理用户选择的范围,然后想要读取所选范围的 address 属性,则需要先加载 address 属性才能读取。 若要请求要加载的代理对象的属性,调用 load() 的方法并指定要加载的属性。

以下示例显示了一个定义本地代理对象 (selectedRange) 的函数,即加载 address 的代理属性, context.sync()。 完成来自 context.sync() 的承诺后,代码可以读取 address 属性。 Excel.run 需要此特定主机才能加载在函数运行时影响平台行为的属性。 并非所有主机都包含运行呼叫。

Excel.run(function (context) {
  var selectedRange = context.workbook.getSelectedRange();
  selectedRange.load('address');
  return context.sync()
    .then(function () {
    console.log('The selected range is: ' + selectedRange.address);
  });
}).catch(function (error) {
  console.log('error: ' + error);
  if (error instanceof OfficeExtension.Error) {
    console.log('Debug info: ' + JSON.stringify(error.debugInfo));
  }
});

了解 Office 加载项开发人员工具

可使用 Office 加载项开发人员工具创建 Office 加载项、浏览 Office JavaScript API 并验证 Office 加载项清单文件。 在此单元中,你将了解以下工具:

  • 适用于 Office 加载项的 Yeoman 生成器
  • Visual Studio
  • Script Lab
  • 清单有效者

创建 Office 加载项

你可通过适用于 Office 加载项的 Yeoman 生成器或 Visual Studio 来创建 Office 加载项。

提示

安装和了解有关 Office 外接程序的 Yeoman 生成器, 通过访问github.com/OfficeDev/generator-office

适用于 Office 加载项的 Yeoman 生成器

可用来创建 Node.js Office 加载项项目,而后者可通过 Visual Studio Code 或任何其他编辑器进行管理。 生成器可以针对以下项目创建 Office 加载项:

  • Excel
  • OneNote
  • Outlook
  • PowerPoint
  • Project
  • Word
  • Excel 自定义函数

可以选择使用 HTML、CSS 和 JavaScript,或者使用"直角"或"响应"创建项目。 TypeScript 也是一个选项。

若要使用 Yeoman 生成器创建 Office 加载项项目,请完成以下步骤。

  1. 若要使用 npm(节点包管理器)全局安装 Yeoman 和 Yeoman 加载项的生成器,请运行以下命令。

    npm install -g yo generator-office
    
  2. 若要使用 Yeoman 生成器创建加载项项目,请运行以下命令。

    yo office
    

Visual Studio

Visual Studio 可用于创建适合 Excel、Word、PowerPoint 或 Outlook 的 Office 加载项。 作为 Visual Studio 解决方案的一部分创建 Office 加载项项目,这意味着可以使用 Visual Studio 功能,例如选择“开始”或选择 F5 以在本地 IIS 上自动运行加载项。 使用 Visual Studio 创建的 Office 加载项项目使用 HTML、CSS 和 JavaScript。

若要使用 Visual Studio 创建 Office 加载项,请创建新的或 Visual Basic 项目并选择下列项目 C# 类型之一。

  • Excel Web 加载项
  • Outlook Web 加载项
  • PowerPoint Web 加载项
  • Word Web 加载项

使用 Script Lab 了解 API

Script Lab 是一款加载项,在 Excel 或 Word 等 Office 程序中工作时,你可用它来了解 Office JavaScript API 和运行代码片段。 它通过 AppSource 免费提供,是一个很有用的工具,可在你测试和验证外接程序中所需的功能时包括在开发工具包中。 在 Script Lab 中,你可访问内置示例库以快速试用 API,甚至还可将示例用作你自己的代码的起点。

下面的视频展示了 Script Lab 的实际运行情况。

预览视频,其中显示了在 Excel、Word 和 PowerPoint 中运行的脚本实验室。

验证 Office 加载项的清单文件

Office 加载项清单验证器检查加载项的清单文件以确定其是否正确且完整。 如果使用 Office 加载项的 Yeoman 生成器(版本 1.1.17 或更高版本)创建了加载项项目,可通过在项目根目录中运行以下命令验证清单。

npm run validate

如果未使用 Yeoman 生成器创建加载项项目,则可通过完成以下步骤验证外接程序清单。

  1. 安装 Node.js。

  2. 在项目的根目录中运行以下命令。

    重要

    {{MANIFEST_FILE}} 替换为清单文件的名称。

    npx office-addin-manifest validate {{MANIFEST_FILE}}
    

了解 Excel JavaScript API 的功能

Excel JavaScript API 允许加载项访问 Excel 文档。 Excel 加载项可管理工作簿或电子表格的内容、格式设置和结构。

了解 Outlook JavaScript API 的功能

通过 Outlook JavaScript API,外接程序可以访问 Outlook 中的用户邮箱、邮件和约会。 Outlook 加载项可获取邮件或约会的内容和属性。 加载项也可以管理正在撰写的邮件或约会的内容、格式设置和结构。

对象模型

若要了解 Outlook API,请首先查看邮箱的主要组件如何相互关联。

  • 邮箱 对象可用于处理身份验证、管理所选项目以及查看用户配置文件详细信息。
  • 对象 项目 表示用户正在阅读或撰写的所选邮件或约会。

通过使用 Outlook API,可以管理电子邮件或约会的许多属性。 许多 API 组织在用户参与的模式周围。 下表对项目类型和模式进行映射。

项目类型 模式
邮件 阅读
撰写
约会/会议 与会者(阅读)
组织者(撰写)

关键功能

除任务窗格加载项外,还可以创建上下文加载项和模块加载项。在此部分中,你将了解 Outlook API 的一些主要功能。

  • 身份验证选项
  • 上下文加载项
  • 模块加载项

身份验证

Outlook 加载项可以从 Internet 上的任意位置访问信息。 几个示例包括托管外接程序的服务器、内部网络或云中其他位置。 如果相应信息受保护,加载项需要能够验证用户身份。 Outlook 加载项提供了多种不同的身份验证方法,具体取决于你的特定方案。

Exchange 用户标识令牌

Exchange 用户标识令牌为加载项提供了一种创建用户标识的方法。 通过验证用户身份,你一次就可以将用户进行身份验证到你的系统中,然后接受用户身份令牌作为将来请求的授权。 如果加载项主要用于 Exchange 本地用户,或者需要访问你控制的非 Microsoft 服务,请考虑使用用户身份令牌。 加载项可以呼叫用户 getUserIdentityTokenAsync() 获取 Exchange 用户标识令牌。

使用 OAuth2 流获取访问令牌

加载项也可以访问支持 OAuth2 进行授权的第三方服务。 如果加载项需要访问超出控制权的第三方服务,请考虑使用 OAuth2 令牌。 使用此方法时,外接程序会提示用户使用 displayDialogAsync() 方法初始化 OAuth2 流来登录到该服务。

回调令牌

邮件令牌通过 Exchange Web Services (EWS) 或 Outlook REST API 从服务器访问用户邮箱。 加载项使用一种以下方法获取 getCallbackTokenAsync() 令牌。 访问权限级别由加载项清单中指定的权限控制。

身份验证摘要

下表总结了使用每种类型的访问令牌时间。

访问令牌 如果加载项使用...
Exchange 用户标识令牌 主要用于 Exchange 本地用户。
需要访问你控制的非 Microsoft 服务。
OAuth2 访问令牌 需要访问您控制之外的第三方服务。
回调令牌 需要从服务器访问用户的邮箱。

上下文加载项

上下文加载项是 Outlook 加载项,可基于邮件或约会中的文本激活。 你可能在 Outlook 中看到了默认的上下文加载项,例如必应地图或"建议的会议"。 通过使用上下文加载项,用户可以启动与邮件相关的任务,而无需离开邮件本身,从而产生更简单、更丰富的用户体验。

下表基于用户的选择列出了一些示例任务。

用户选择... 上下文加载项操作
地址 打开位置的地图。
String 打开会议建议加载项。
电话号码 为联系人添加编号。

注意

上下文加载项暂不适用于 Android 版和 iOS 版 Outlook。

下图显示了 Outlook 中显示的上下文加载项。

显示在 Outlook 中的上下文外接程序示例的屏幕截图。

Outlook 中显示的上下文加载项

上下文加载项的清单必须包括一个 ExtensionPoint 元素,该元素 xsi:type 属性设置为 DetectedEntity。 在 ExtensionPoint 元素中,外接程序指定可激活该元素的实体或正则表达式。 如果指定实体,则该实体可以是 Entities 对象中的任何属性。

因此,外接程序清单必须包含类型为 ItemHasKnownEntityItemHasRegularExpressionMatch 的规则。 下面的示例演示如何指定当加载项检测到电话号码时应在邮件上激活。

<ExtensionPoint xsi:type="DetectedEntity">
  <Label resid="contextLabel" />
  <SourceLocation resid="detectedEntityURL" />
  <Rule xsi:type="RuleCollection" Mode="And">
    <Rule xsi:type="ItemIs" ItemType="Message" />
    <Rule xsi:type="ItemHasKnownEntity" EntityType="PhoneNumber" Highlight="all" />
  </Rule>
</ExtensionPoint>

上下文加载项与帐户关联后,将在用户选择突出显示的实体或正则表达式时自动启动。

用户通过文本(可以是已知实体或开发人员的正则表达式)启动上下文外接程序。 用户通常标识某个上下文外接程序的原因是该实体突出显示。

模块加载项

模块加载项显示在 Outlook 导航栏中,邮件、任务和日历旁边。 可在加载项中利用 Outlook JavaScript API 的所有功能,在 Outlook 功能区创建命令按钮,使用户可以与加载项内容进行交互。

注意

模块加载项仅在 Outlook 2016 或 Windows 更高版本中受支持。

下图中显示了模块扩展加载项的示例。

Windows 上 Outlook 中的模块加载项示例的屏幕截图。

Windows 上 Outlook 中的模块加载项示例

若要使模块加载项,请使加载项的清单文件中包含模块扩展点。 以下示例显示了调整为定义模块扩展名的清单文件的一个代码段。

...
<!-- Add Outlook module extension point. -->
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides"
                  xsi:type="VersionOverridesV1_0">
  <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1"
                    xsi:type="VersionOverridesV1_1">

    <!-- Begin override of existing elements. -->
    <Description resid="residVersionOverrideDesc" />

    <Requirements>
      <bt:Sets DefaultMinVersion="1.3">
        <bt:Set Name="Mailbox" />
      </bt:Sets>
    </Requirements>
    <!-- End override of existing elements. -->

    <Hosts>
      <Host xsi:type="MailHost">
        <DesktopFormFactor>
          <!-- Set the URL of the file that contains the
               JavaScript function that controls the extension. -->
          <FunctionFile resid="residFunctionFileUrl" />

          <!-- Module extension point for a ModuleApp -->
          <ExtensionPoint xsi:type="Module">
            <SourceLocation resid="residExtensionPointUrl" />
            <Label resid="residExtensionPointLabel" />

            <CommandSurface>
              <CustomTab id="idTab">
                <Group id="idGroup">
                  <Label resid="residGroupLabel" />

                  <Control xsi:type="Button" id="group.changeToAssociate">
                    <Label resid="residChangeToAssociateLabel" />
                    <Supertip>
                      <Title resid="residChangeToAssociateLabel" />
                      <Description resid="residChangeToAssociateDesc" />
                    </Supertip>
                    <Icon>
                      <bt:Image size="16" resid="residAssociateIcon16" />
                      <bt:Image size="32" resid="residAssociateIcon32" />
                      <bt:Image size="80" resid="residAssociateIcon80" />
                    </Icon>
                    <Action xsi:type="ExecuteFunction">
                      <FunctionName>changeToAssociateRate</FunctionName>
                    </Action>
                  </Control>
                </Group>
                <Label resid="residCustomTabLabel" />
              </CustomTab>
            </CommandSurface>
          </ExtensionPoint>
        </DesktopFormFactor>
      </Host>
    </Hosts>

    <Resources>
      ...
    </Resources>
  </VersionOverrides>
</VersionOverrides>

Outlook 加载项开发入门

若要开发 Outlook 加载项,请使用:

  • Office 加载项的 Yeoman 生成器
  • Visual Studio

可以将模板作为基本模板,然后添加功能。

了解 Word JavaScript API 的功能

Word JavaScript API 允许加载项访问 Word 文档。 Word 加载项可管理文档的内容、格式设置和结构。

对象模型

若要了解 Word API,必须了解文档的主要组件如何相互关联。

  • 文档 包括 正文 以及至少包含一 部分
  • 正文 可以包括:
    • 段落 (一个或多个)
    • 表格 (一个或多个)
    • 列表 (一个或多个)
    • Text
    • 图像和列表等对象
  • 分区 将有权访问其正文、页眉和页脚。

关键方案

在此部分中,你将了解 Word API 的一些关键方案。

  • 处理文档文本
  • 搜索

注意

可以使用 Office.js API 将简单格式应用于整个现有文档。 但是,如果你想要应用复杂的格式或使用丰富的内容对象,可以使用 Office Open XML (OOXML) 创建这些效果。 OOXML 中的功能示例包括向文本或图片应用投影、将文本框强制转换为形状,以及将 Excel 图表作为实时图表插入 Word 文档中。 由于这是一种更高级的技巧,我们不会完全涵盖此主题,而是向熟悉 OOXML 的开发人员提及此主题。

处理文档文本

Word 加载项使用 Office.onReady() 事件处理程序启动。 如果加载项针对 Word 2016 或更高版本,它调用了 Word.run() Word JavaScript API 的一种主要方法。 该加载项必须将函数传递到 Word.run() 预期将上下文对象传递到参数的值。 上下文对象允许加载项与 Word 文档进行交互。 可以使用上下文对象为 Word 文档创建任何所需的代理对象,并加载包含任何希望使用的属性的代理。 也可以对操作进行程序,以使用这些属性运行。 与通常一样,context.sync()命令会同步 Word 文档中的代理对象和对象之间的状态。

以下示例显示了在 Word 文档的正文文本后插入文本的代码。 为简化,此示例遗漏了 Office.onReady() 代码,焦点位于每个代码块 Word.run() 代码。

// Run a batch operation against the Word JavaScript API.
Word.run(function (context) {
  // Create a proxy object for the document body.
  var body = context.document.body;

  // Queue a command to load the text property of the proxy body object.
  body.load("text");

  // Queue a command to insert text into the end of the Word document body.
  body.insertText('This is text inserted after loading the body.text property',
                  Word.InsertLocation.end);

  // Synchronize the document state by executing the queued commands,
  // and return a promise to indicate task completion.
  return context.sync().then(function () {
    console.log("Body contents: " + body.text);
  });
})

可以使用 API 在文档中搜索符合条件的文本。 还可以将搜索范围设置到某些类型的内容,例如,段落或表格。

以下代码示例搜索文本"视频你"并忽略标点。 如果找到文本,匹配项将加粗,以黄色突出显示,字体颜色设置为紫色。

// Run a batch operation against the Word object model.
Word.run(function (context) {
  // Queue a command to search the document and ignore punctuation.
  var searchResults = context.document.body.search('video you', {ignorePunct: true});

  // Queue a command to load the search results and get the font property values.
  context.load(searchResults, 'font');

  // Synchronize the document state by executing the queued commands,
  // and return a promise to indicate task completion.
  return context.sync().then(function () {
      console.log('Found count: ' + searchResults.items.length);

      // Queue a set of commands to change the font for each found item.
      for (var i = 0; i < searchResults.items.length; i++) {
        searchResults.items[i].font.color = 'purple';
        searchResults.items[i].font.highlightColor = '#FFFF00'; // Yellow
        searchResults.items[i].font.bold = true;
      }

      // Synchronize the document state by executing the queued commands,
      // and return a promise to indicate task completion.
      return context.sync();
  });
})
.catch(function (error) {
  console.log('Error: ' + JSON.stringify(error));
  if (error instanceof OfficeExtension.Error) {
    console.log('Debug info: ' + JSON.stringify(error.debugInfo));
  }
});

开始开发 Word 加载项

若要开发 Word 加载项,请使用:

  • Office 加载项的 Yeoman 生成器
  • Visual Studio

如果你想要探索更多 API,推荐使用脚本实验室加载项。 在这里,你将看到许多 TypeScript 和 JavaScript 片段,并且无需创建整个加载项即可试用 Word 文档。

了解自定义函数的功能

自定义函数有几个独特的功能和限制,因为它们在独立于其他加载项交互(如任务窗格)的运行时运行。

自定义函数功能

可以创建自定义 JavaScript 或 TypeScript 函数,这些函数可以访问,就像 Excel 中的内置函数如 SUM()。 也可以创建流式处理自定义函数,这将返回基于计时器的值。 例如,你可以每隔一秒更新一个单元格中的当前时间值。 也可利用自定义功能进行网络呼叫。

自定义函数 JavaScript 示例

以下代码示例定义接受两个数字 add() 然后返回其和的自定义函数示例。

/**
 * Adds two numbers.
 * @customfunction
 * @param first First number.
 * @param second Second number.
 * @returns The sum of the two numbers.
 */

function add(first, second){
  return first + second;
}
JSDoc 代码批注说明

代码批注中的 JSDoc 标记用于生成将自定义函数描述到 Excel 的 JSON 元数据文件。 JSON 元数据文件使 Excel 能够准确地向用户呈现信息,将预期参数传递到自定义函数。

  • @customfunction:先声明,指示它是自定义函数。 必填。
  • @param:描述参数。 包括由函数定义的每个参数。
  • @returns:介绍函数的输出。

注意

评论描述“添加两个数字。”也会添加到 Excel 的 JSON 元数据文件中,当用户查看自定义函数时要显示该文件。

自定义函数运行时限制

自定义函数运行时只运行 JavaScript。 没有文档对象模型 (DOM) 或本地存储,如在基于浏览器的 JavaScript 运行时环境中可发现的内容一样。 这意味着不能加载任何使用 DOM 的库,例如 jQuery。 此外,无法访问 Office.js API 与文档进行交互,就像在任务窗格中的操作一样。 自定义函数运行时已针对快速计算等任务进行了优化,通常不需要使用某些 Office.js API,例如 Excel 中的格式设置工具。

自定义函数具有加载自定义函数运行时的网页。 由于自定义函数运行时没有 UI,因此没有要显示的网页。 您将在网页中查找以下脚本标记,该标记加载自定义函数运行时的库。

<script src="https://appsforoffice.microsoft.com/lib/1/hosted/custom-functions-runtime.js" type="text/javascript"></script>

通常,自定义函数会与同一加载项中的任务窗格组合使用。 如果使用 Office 加载项的 Yeoman 生成器创建加载项项目,该项目将具有自定义函数的网页和一个包含任务窗格 UI 的网页。

使用存储 API 与任务窗格进行通信

自定义函数代码和任务窗格代码(使用 Office.js)不能直接相互呼叫或通信。 但可以使用可允许其共享数据的存储 API。 使用存储 API 的常见情况是,外接程序需要共享访问安全网络资源的安全令牌。 用户可能首先调用需要登录的自定义函数。 身份验证后,它将收到安全令牌。 然后,它使用存储 API 共享安全令牌,这样之后,当用户打开任务窗格时,任务窗格无需再次登录。

用户可能会先打开任务窗格。 在这种情况下,任务窗格将登录用户,并通过存储 API 共享安全令牌。 稍后使用自定义函数时,自定义函数可以通过存储 API 获取安全令牌。

存储 API 示例

下面的代码示例显示了如何存储和检索用户创建的任何值。

/**
 * @customfunction
 * @description Stores a value in OfficeRuntime.storage.
 * @param {any} key Key in the key-value pair you will store.
 * @param {any} value Value in the key-value pair you will store.
 */
function storeValue(key, value) {
  return OfficeRuntime.storage.setItem(key, value).then(function (result) {
    return "Success: Item with key '" + key + "' saved to storage.";
  }, function (error) {
    return "Error: Unable to save item with key '" + key + "' to storage. " + error;
  });
}

/**
 * @customfunction
 * @description Gets value from OfficeRuntime.storage.
 * @param {any} key Key of item you intend to get.
 */
function getValue(key) {
  return OfficeRuntime.storage.getItem(key);
}

对话框 API

自定义函数具有其自己的对话框 API,因为它们无法访问 Office.js API。 但功能相似。 最常见的情况是启动用于登录用户的对话框并接收安全令牌。

下面的代码示例演示如何显示自定义函数中的 Web 对话框。

OfficeRuntime.displayWebDialog('https://myDomain/myDialog.html', {height: 30, width: 20});

创建自定义函数项目

可以使用 Office 加载项的 Yeoman 生成器创建自定义函数项目。运行 yo office 启动生成器,然后选择 Excel 自定义函数加载项项目启动器 选项。 创建之后,项目将包含一个任务窗格源文件的 /src/taskpane/ 文件夹,以及用于自定义函数源文件的 /src/function 文件夹。

注意

你不能在 Visual Studio 中创建自定义函数项目。

摘要

在此单元中,你探索了 Office 加载项编程模型、开发人员工具,以及用于 Excel、Outlook 和 Word 的 Office JavaScript API 的功能。

Office 加载项编程模型和 Office JavaScript API

1.

下列哪项关于 Office JavaScript API 的语句是正确的?

2.

开发人员想在 Excel 中使用插件来实现数据的可视化。 什么是好的使用对象?

3.

配置 Outlook 插件为出现在 Outlook 导航栏中,即与邮件和日历并列。 它是什么样的加载项?

4.

有什么好工具可以在不创建加载项的情况下试用 Word API 吗?

5.

开发人员正在设置带有自定义函数和任务窗格的加载项。 它们之间应该如何共享数据?