自动打开侧面加载的任务窗格

时间:2019-06-02 10:06:53

标签: office-js office-js-helpers

是否可以自动打开处于开发人员模式的插件?

根据documentation

  

您指定自动打开的窗格仅在以下情况下打开   该加载项已安装在用户设备上。如果用户这样做   打开文档时没有安装加载项,自动打开   功能将不起作用,并且设置将被忽略。如果你还   要求将外接程序与您需要设置的文档一起分发   可见性属性为1;这只能使用OpenXML完成,   本文稍后会提供示例。

特别是,我尝试自动打开的文件是基于office-generator并进行了一次修改的文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <we:webextension xmlns:we="http://schemas.microsoft.com/office/webextensions/webextension/2010/11" id="{acbc717b-5139-428a-9089-e9d6d7d8affc}">
  <we:reference id="acbc717b-5139-428a-9089-e9d6d7d8affc" version="1.0.0.0" store="developer" storeType="Registry"/>
  <we:alternateReferences/>

  <we:properties>
    <we:property name="Office.AutoShowTaskpaneWithDocument" value="true"/>
  </we:properties>

  <we:bindings/>
  <we:snapshot xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
</we:webextension>

加上<we:property name="Office.AutoShowTaskpaneWithDocument" value="true"/>

,并通过如下修改manifest.xml

<Action xsi:type="ShowTaskpane">
  <TaskpaneId>Office.AutoShowTaskpaneWithDocument</TaskpaneId>
  <SourceLocation resid="Taskpane.Url"/>
</Action>

问题:

预计会有一个任务窗格会自动打开。

自动打开的任务窗格有一个错误,指出为we can't find the task pane to open。另一方面,单击功能区上的,将使正常打开的任务窗格与损坏的自动打开的任务窗格并排打开,如下图所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

Microsoft Word的某个地方有一个隐藏状态,即使重新启动后该状态仍然存在。要重现该错误,您几乎需要一台新计算机

让我解释一下……一周后我是如何工作的。

首先从office-js生成器开始。

yo office,为此我选择了打字稿。

enter image description here

修改src / taskpane / taskpane.ts如下:

export async function run() {
  return Word.run(async context => {
    /**
     * Insert your Word code here
     */

    // insert a paragraph at the end of the document.
    const paragraph = context.document.body.insertParagraph("Hello World", Word.InsertLocation.end);

    // change the paragraph color to blue.
    paragraph.font.color = "blue";

    // Add these two lines
    Office.context.document.settings.set("Office.AutoShowTaskpaneWithDocument", true);
    Office.context.document.settings.saveAsync();
    // Technically should wait, but doesn't matter.

    await context.sync();
  });

修改manifest.xml如下: 将ButtonId1替换为Office.AutoShowTaskpaneWithDocument

<Action xsi:type="ShowTaskpane">
  <TaskpaneId>Office.AutoShowTaskpaneWithDocument</TaskpaneId>
  <SourceLocation resid="Taskpane.Url"/>
</Action>

按常规启动项目。 npm run start

点击运行按钮以触发自动打开文件的创建。

enter image description here

将文件保存在某处。

重新打开它以验证它是否有效。有趣的是,当我单击显示任务窗格按钮时,它创建了一个相同的任务窗格。这是一个错误,但对我有用。毕竟是出于测试目的。

enter image description here

要证明文件的问题确实是隐藏状态: 在新计算机 npm run start上克隆存储库,将文件复制过来。

运行文件,您将遇到与我在原始帖子中遇到的相同的问题。