Excel JavaScript任务窗格部署后无法自动加载问题求助
问题描述
开发Excel JavaScript任务窗格插件,开发环境手动侧加载XML清单后,打开工作簿时任务窗格可自动加载,符合预期。但通过Microsoft Admin中心部署到独立服务器、修改清单指向新服务器并分配给测试用户后,测试用户仅能在功能区看到插件图标,任务窗格无法自动加载。
通过OpenXmlFileViewer查看工作簿内容:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <we:webextension xmlns:we="http://schemas.microsoft.com/office/webextensions/webextension/2010/11" id="{747863CA-D79B-40BB-B204-EC5A53D3EADB}"> <we:reference id="6aef3647-b866-4164-83c9-b2e7c3af4b5b" version="1.0.0.0" store="developer" storeType="uploadfiledevcatalog" /> <we:alternateReferences> <we:reference id="6aef3647-b866-4164-83c9-b2e7c3af4b5b" version="1.0.0.0" store="omex" storeType="omex" /> </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:extLst> <a:ext xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" uri="{D87F86FE-615C-45B5-9D79-34F1136793EB}"> <we:containsCustomFunctions /> </a:ext> </we:extLst> </we:webextension>
清单文件相关配置:
<Action xsi:type="ShowTaskpane"> <!-- <TaskpaneId>ButtonId1</TaskpaneId> --> <TaskpaneId>Office.AutoShowTaskpaneWithDocument</TaskpaneId> <SourceLocation resid="Taskpane.Url"/> </Action>
清单ID已正确写入Excel文件,咨询以下问题:
- store和storeType的值是否会导致任务窗格无法自动加载?
<we:webextension>的id属性及<a:ext>的uri属性分别作用是什么?
问题解答
1. store和storeType的值是否会导致任务窗格无法自动加载?
会。你当前工作簿里的store="developer"和storeType="uploadfiledevcatalog"是开发侧加载环境的标识,而通过Admin中心部署的插件属于企业级部署,对应的storeType应该是admincatalog。Office需要匹配工作簿中webextension的store/storeType与已部署插件的对应标识,才能触发自动加载逻辑。
解决办法:让测试用户在部署后的环境中打开工作簿,手动点击功能区的插件图标加载一次任务窗格,Office会自动更新工作簿里的webextension reference信息,将store/storeType替换为企业部署对应的标识,之后再打开工作簿就能自动加载任务窗格了。
2. <we:webextension>的id属性及<a:ext>的uri属性分别作用是什么?
<we:webextension>的id:是当前工作簿中这个插件实例的唯一UUID,Office用它来区分同一个工作簿内的不同插件实例,跟踪插件的状态、绑定关系、自定义属性等数据,确保每个插件实例的配置独立存储和读取。<a:ext>的uri:是扩展功能的唯一标识,这里的{D87F86FE-615C-45B5-9D79-34F1136793EB}是Office自定义函数扩展的标准UUID,用来告诉Office这个插件包含自定义函数功能,Office会根据这个标识加载对应的自定义函数运行时逻辑。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

