如何获取 Excel 工作簿中的工作表列表并将它们显示在加载项 UI 中?

How can I get a list of worksheets in an Excel workbook and display them in the add-in UI?

我正在尝试在 Office JS 加载项中做一些工作。

我查看了 Script Lab 和通过 yeoman 进行的侧载。

我只是找不到足够的示例代码来克服在学习 Office 和 Excel API 本身之外学习如何使用 React / Typescript 的困难。

如果有人可以演示 Script Lab "List worksheets" 示例的简单扩展,将工作表列表放入任务面板(附加组件 UI)而不是简单地转储,那就太好了他们进入 console.log().

还有一个后续问题: 我的目标是从 Google 表格应用程序脚本中移植一些代码,这样我们就可以在 Excel 中做同样的事情。该项目仅针对一个工作簿,不会分发。是在真实的 Office 加载项上下文中执行此操作并承受旁加载(我们真的总是必须 运行 单独的节点服务器吗!?)还是尝试在脚本实验室中完成所有操作更好? 我喜欢 Script Lab 路线的轻松,但我担心,因为它上面贴满了警告,表明它用于实验和原型设计,而不是生产工作。

从本质上讲,Office(网络)加载项只是一个网络应用程序——即,任务窗格是您的 canvas (UI),其中包含各种 HTML 元素,您可以使用 JavaScript/TypeScript update/manipulate 任务窗格的内容。因此,只需指定将包含输出的 HTML 元素,然后使用 JavaScript/TypeScript 设置元素的值,即可将输出写入任务窗格。

例如,您可以在 HTML:

中指定一个 span 元素
<span id="result"></span>

然后通过脚本填充此元素,如下所示:

$('#result').html('This is the result!');

我创建了一个片段来说明 List Worksheets 操作的这种方法。您可以使用 Script Lab (https://aka.ms/getscriptlab). Simply install the Script Lab add-in (free), then choose "Import" in the navigation menu, and use the following Gist URL: https://gist.github.com/kbrandl/a4a1e4da51385707863aec0ebdf296f6.

自己尝试该片段

最后,关于您的后续问题的评论:

  • Script Lab 是一个实验性工具,您可以使用它来了解如何开发 Office 加载项;它不是 Microsoft 官方产品,不受支持,也不适合用于生产用例。
  • 要在生产用例中使用加载项,建议您将加载项(Web 应用程序)部署到 Web 服务器,然后使用任何 available methods 发布加载项-在。