在 Visual Studio 中将 Office 加载项项目转换为使用 TypeScript

可以使用 Visual Studio 中的 Office 加载项模板,创建使用 JavaScript 的加载项,再将加载项项目转换为使用 TypeScript。 本文介绍了 Excel 加载项的此转换过程。 可以按照相同的过程操作,在 Visual Studio 中将其他类型的 Office 外接程序项目从 JavaScript 转换为 TypeScript。

先决条件

创建加载项项目

注意

如果已有现有项目,请跳过此部分

  1. 在 Visual Studio 中,选择“新建项目”。 如果 Visual Studio 开发环境已打开,可以通过在菜单栏上选择“ 文件 > 新建 > 项目 ”来创建新项目。

  2. 使用搜索框,输入“加载项”。 选择“Excel Web 加载项”,然后选择“下一步”。

  3. 对项目命名,然后选择“创建”。

  4. 在“创建 Office 加载项”对话框窗口中,选择“将新功能添加到 Excel”,再选择“完成”以创建项目。

  5. 此时,Visual Studio 创建解决方案,且它的两个项目显示在“解决方案资源管理器”中。 Home.html 文件将在 Visual Studio 中打开。

将加载项项目转换为使用 TypeScript

添加 Nuget 包

  1. 通过选择“工具>”“Nuget 包管理器”“管理解决方案的 Nuget 包”打开“Nuget 包管理器>”
  2. 选择“ 浏览 ”选项卡。搜索并选择“ Microsoft.TypeScript.MSBuild”。 将此包安装到 ASP.NET Web 项目,或更新它(如果已安装)。 ASP.NET Web 项目具有项目名称,末尾追加了文本 Web 。 这将确保项目在生成运行时将转译为 JavaScript。

注意

在 TypeScript 项目中,可以混合使用 TypeScript 和 JavaScript 文件,项目都可以进行编译。 这是因为 TypeScript 是键入的 JavaScript 超集,可以编译 JavaScript。

创建 TypeScript 配置文件

  1. “解决方案资源管理器”中,右键单击“ (”或选择并按住) ASP.NET Web 项目,然后选择“ 添加新>”。 ASP.NET Web 项目具有项目名称,末尾追加了文本 Web

  2. “添加新项 ”对话框中,搜索并选择“ TypeScript JSON 配置文件”。 选择“ 添加 ”以创建 tsconfig.json 文件。

  3. tsconfig.json 文件更新为同时包含节 include ,如以下 JSON 所示。

    {
      "compilerOptions": {
        "noImplicitAny": false,
        "noEmitOnError": true,
        "removeComments": false,
        "sourceMap": true,
        "target": "es5"
      },
      "exclude": [
        "node_modules",
        "wwwroot"
      ],
      "include": [
        "scripts/**/*",
        "**/*"
      ]
    }
    
  4. 保存文件。 有关 tsconfig.json 设置的详细信息,请参阅 什么是tsconfig.json?

创建 npm 配置文件

  1. “解决方案资源管理器”中,右键单击“ (”或选择并按住) ASP.NET Web 项目,然后选择“ 添加新>”。 ASP.NET Web 项目具有项目名称,末尾追加了文本 Web

  2. “添加新项 ”对话框中,搜索 npm 配置文件。 选择“ 添加” 以创建 package.json 文件。

  3. 更新 package.json 文件以 @types/jquery 在 节中包含 devDependencies 包,如以下 JSON 所示。

    {
      "version": "1.0.0",
      "name": "asp.net",
      "private": true,
      "devDependencies": {
        "@types/jquery": "^3.5.30"
      }
    }
    
  4. 保存文件。

  5. 选择具有项目名称的 ASP.NET Web 项目,并将文本 Web 追加到末尾。 在 “npm ”部分下,将 “打开项目时还原”“保存时还原 ”设置为“True”。

更新 JavaScript 文件

将 JavaScript 文件 (.js) 更改为 TypeScript 文件, (.ts) 。 然后,对它们进行必要的更改以编译。 本部分演练新项目中的默认文件。

  1. 查找 Home.js 文件,并将其重命名为 Home.ts

  2. 找到 ./Functions/FunctionFile.js 文件,再将其重命名为 FunctionFile.ts

  3. 找到 ./Scripts/MessageBanner.js 文件,再将其重命名为 MessageBanner.ts

  4. Home.ts中,找到 该行 Office.initialize = function (reason) { ,并在其后面立即添加一行,以填充全局 window.Promise,如下所示。

    Office.initialize = function (reason) {
        // Add the following line.
        (window as any).Promise = OfficeExtension.Promise;
        ...
    
  5. ./Scripts/MessageBanner.ts 中,找到行 _onResize(null); 并将其替换为以下内容:

    _onResize();
    

Visual Studio 生成的 JavaScript 文件不包含任何 TypeScript 语法。 应考虑更新它们。 例如,以下代码演示如何将参数更新为 showNotification 以包含字符串类型。

 function showNotification(header: string, content: string) {
        $("#notification-header").text(header);
        $("#notification-body").text(content);
        messageBanner.showBanner();
        messageBanner.toggleExpansion();
    }

运行转换后的外接程序项目

  1. 在 Visual Studio 中,按 F5 或选择“ 开始 ”按钮启动 Excel,并在功能区上显示“ 显示任务窗格 加载项”按钮。 加载项本地托管在 IIS 上。

  2. 在 Excel 中,选择“ 开始 ”选项卡,然后选择功能区上的“ 显示任务窗格 ”按钮以打开加载项任务窗格。

  3. 在工作表中,选择九个包含数字的单元格。

  4. 按任务窗格上的“突出显示”按钮,以突出显示选定范围内所含数字最大的单元格。

另请参阅