小编Nat*_*ush的帖子

Excel Javascript 插件:如何在任务窗格中打开 ExecuteFunction 而不是新的 iframe?

我正在尝试使用 Excel Javascript API 创建一个插件:

  • 在主页选项卡上添加多个按钮。
  • 每个按钮都会将任务窗格打开到不同的屏幕。
  • 这些任务窗格中的每一个都在相同的运行时中运行(例如,我只需在 中设置数据即可在它们之间共享数据window.data = "data")。

据我所知,不可能ShowTaskpane通过按钮上的多个操作来做到这一点,因为这似乎不适用于共享运行时

我目前采取的方法是:

  1. 将我的函数文件设置为
<FunctionFile resid="Taskpane.Url"/>
Run Code Online (Sandbox Code Playgroud)

(其中<bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html"/>

  1. 定义以下操作:
<Control xsi:type="Button" id="FirstButton">
    ...
    <Action xsi:type="ExecuteFunction">
        <FunctionName>first</FunctionName>
    </Action>
</Control>
<Control xsi:type="Button" id="SecondButton">
    ...
    <Action xsi:type="ExecuteFunction">
        <FunctionName>second</FunctionName>
    </Action>
</Control>
Run Code Online (Sandbox Code Playgroud)
  1. 在全局范围内定义firstsecond作为函数(并在taskpane.html文件中定义)。这些函数中的每一个 a) 在 Taskpane 应用程序中设置一些状态(以使其显示不同的内容,具体取决于函数调用),然后调用Office.addin.showAsTaskpane(). 代码大致如下:

从按钮调用的第一个函数的代码

但是,这不会按预期工作。也就是说,它在任务窗格一侧的单独 iframe 中打开任务窗格。它看起来像这样:

共享功能在新的 iframe 中打开

当我添加Office.addin.showAsTaskpane()share函数的调用时,它看起来像这样:

showAsTaskpane 只会导致任务窗格以及新的 iframe 打开

如何使用执行功能操作但在任务窗格中执行此操作?我想要一个共享的运行时,并且我希望所有的运行时都打开并位于任务窗格中。该文档使 AppDomains 似乎可以实现这一目标,但我不确定我做错了什么。

感谢您提供任何信息 - 我真的很感激!

office-addins excel-addins office365 office-js

7
推荐指数
1
解决办法
520
查看次数

Excel JavaScript API 文件系统交互、系统调用和 API 调用?

我正在使用Excel Javascript API编写 Excel 插件。

我想知道三件事:

  1. 如果插件在桌面 Excel 上运行,那么插件可以与本地计算机的文件系统交互吗?
  2. 如果该加载项在桌面 Excel 上运行,它可以进行系统调用吗?我希望移动一些文件,也许还可以调用一些已安装的软件包。
  3. 最后,该插件能否将工作表数据(甚至整个工作表)发送到外部 API?更一般地说,附加组件可以将任意数据发送到某个服务器吗?

如果您对信息很慷慨,那么了解VSTO 外接程序也可以实现这些功能中的哪些功能会很棒。

预先感谢您的帮助 - 非常感谢!

excel excel-addins office-js

4
推荐指数
1
解决办法
738
查看次数