首页 > 解决方案 > 在 Visual Studio Code 中的现有 excel 文件上调试 Excel javascript 加载项

问题描述

我尝试使用 Visual Studio Code 中的 Office 插件调试器调试 Excel Javascript 插件。我想将调试器配置为打开现有的 Excel 文件。

我在 launch.json 中使用默认配置“Excel Desktop (Edge Chromium)”。但是每次我按 F5 时,它都会创建一个新的 Excel 文件。文件名是manifest.xml中Id标签中的GUID,如a32c06d3-4bbb-4158-8b61-e0349f58019c.xlsx。

我看到这个配置运行了一个 preLaunchTask “调试:Excel 桌面”。此任务在 task.json 中指定:

  "label": "Debug: Excel Desktop",
  "type": "npm",
  "script": "start:desktop -- --app excel,
  "presentation": {
    "clear": true,
    "panel": "dedicated",
  },
  "problemMatcher": []

创建新 Excel 文件的是“npm start:desktop -- --app excel”。

我试过了

npm start:desktop -- --app excel '目录\文件名'

但是 npm 仍然会创建名为 excel 的 GUID 文件,而不是打开指定的文件。我知道在 Visual Studio 中,您可以启动调试器并附加到现有的 Excel 文件(在此链接中解释:Debug Excel add-inwritten by JavaScript API on an existing workbook)。Visual Studio Code 可以做同样的事情吗?

标签: excelvisual-studio-codeoffice-jsnpm-start

解决方案


我查看了 office-addin-debugger 扩展的代码。它不支持调试现有的 office 文件(excel 或 word)。这个扩展的工作方式是它从 node_modules\office-addin-dev-settings\templates 中的模板 office 文件中读取。此模板办公文件(例如 ExcelWorkbookWithTaskPane.xlsx)包含一些清单 xml 信息。扩展代码将此信息替换为您的插件 xml 信息,例如 Id 和版本,然后输出到新的 office 文件(例如 Excel 插件 05a62159-5ecd-42b7-b302-641656dcb776.xlsx)。然后启动新的 office 文件并将其附加到调试器。

要使用现有的 excel 文件,该 excel 文件必须具有相似的骨架清单 xml 信息,以便搜索和替换。我还没有找到将此信息添加到 excel 文件中的方法。

一种解决方法是将现有 excel 文件的内容移动到调试期间创建的新文件 VSC 中。但是您无法保存该新文件。保存后,xml 信息将丢失,并且该保存的文件无法在 VSC office-addin-debugging 中使用。


推荐阅读