标签: office-addins

将自定义唯一 ID 分配给 Word 2013 OpenXML 元素

TLDR/问题

如何最好地将唯一 ID 分配给描述 Word 文档的 XML 中的(最好是所有)元素,以便我可以从 Word (2013) 加载项读取/写入这些唯一 ID?

此外,描述如何获得两个 Word 文档的良好差异的解决方案可能会有所帮助,但这不是主要问题。

背景

我正在使用 VSTO 创建 Word (2013) 的应用程序级加载项。我的部分任务涉及将原始 Word 文档W与修改后的文档进行比较W',以便我可以为另一项任务处理该差异。虽然 Word 显然具有差异/合并功能(可在 Word 2013 的“审阅”面板中找到),但到目前为止,我还没有找到一种以编程方式提取差异的方法。

因此,我计划获取文档的 XML(例如使用Range.WordOpenXML)并比较它们。有许多已发布的用于比较 XML 文档(即Diff(W.XML, W'.XML))的算法,其中比较的准确性在很大程度上取决于是否能够正确匹配两个文档中的 XML 元素。

建议的解决方案及其问题

因此,我希望能够为可以从加载项访问的 Word 文档的 XML 中的每个元素分配一个唯一的 ID。在这种情况下,解决方案类似于将自定义命名空间导入到名为的包中,并为 DOCX 包中的每个元素mynamespace添加属性。mynamespace:ID=***然后可以通过 访问该属性Range.WordOpenXML

但是,只需使用 mce:Ignorable、mce:ProcessContent 和 mce:PreserveAttributes,详见http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2012/09/21/markup-compatibility-and-extensibility.aspx不起作用。修改后的 Word 文档加载没有任何问题,但我似乎找不到任何属性,另外保存文档会删除所有添加的标记。

http://openxmldeveloper.org/discussions/formats/f/13/p/8078/163573.aspx看来,通过 Office Open XML 标准的标记兼容性和扩展性 (MCE) 部分使用自定义 xml 的过程已多年来变得复杂(专利问题等)。因此,我猜测我的问题的出现是因为 Word …

ms-word openxml office-addins word-2013 word-addins

5
推荐指数
1
解决办法
1058
查看次数

设置 Office 加载项任务窗格的宽度

是否可以设置 Outlook 加载项加载时的宽度。现在,当我单击功能区上的插件按钮时,任务窗格会显示在右侧,宽度约为 437 像素。我想将该宽度增加到 820 像素之类的值。

outlook office-addins outlook-addin office365 office-js

5
推荐指数
1
解决办法
3779
查看次数

获取 Powerpoint 加载项 Mac 的存储位置

我必须从我的 cocoa 应用程序将 powerpoint 插件添加到 Powerpoint Mac。我已经通过以下代码从我的 cocoa 应用程序添加了 .ppam 文件

 NSString *pluginPath = [[NSBundle mainBundle] pathForResource:@"Kahani2016" ofType:@"ppam"];
    [[NSWorkspace sharedWorkspace] openFile:pluginPath];
Run Code Online (Sandbox Code Playgroud)

它适用于大多数 powerpoint。我们可以从powerpoint中查看添加的powerpoint插件

但有些系统显示以下错误消息 在此输入图像描述

我正在尝试解决这个问题。我尝试通过使用 .ppam 文件添加数字签名来解决此问题。但无助于解决问题。我只是感到困惑,因为我试图在另一台具有相同 OSX 和 Powerpoint 版本的计算机上重现此问题,但它在另一台计算机上工作正常。我的配置 Powerpoint 15.29.1 Mac

因此,如果我获得 powerpoint-Addin 的位置,那么我可以尝试将我的加载项复制到该位置并解决问题。

macos cocoa powerpoint vba office-addins

5
推荐指数
0
解决办法
772
查看次数

Office Outlook 插件中无法访问 Cookie

我正在为 Outlook 开发 Addin,以下是我的问题 陈述: IE & Safari 默认情况下第三方 cookie 被禁用,我无法设置我的应用程序的 cookie,因为它被视为第三方,所以我正在启动该模型对话框显示我的应用程序登录页面,成功登录后,我看到 cookie 已设置,并且我正在关闭模型对话框窗口。之后我刷新我的主机页面以重定向到我们为 Addin 设计的门户,这里我的 Addin 无法读取 cookie。但是当我打开新选项卡时,我可以访问我的门户,因为 cookie 可用

我已经解决了在浏览器中启用第三方 cookie 的问题,但我不想要求我的客户启用浏览器第三方 cookie。因此我尝试通过模型对话框设置cookie。

感谢您的帮助,我很高兴知道为什么我无法访问浏览器中可用的 cookie。

cookies office-addins outlook-web-addins

5
推荐指数
1
解决办法
1524
查看次数

Office VSTO 加载项可能存在权限问题 - HRESULT 0x80004004 (E_ABORT)

我们开发了一个 C# Office VSTO 加载项,它与正在运行的 Outlook 实例进行通信(或启动一个新实例),并且在尝试创建 Outlook 任务或约会时,它在某些客户 PC 上显示出存在权限问题的迹象。 。

异常消息如下:

操作中止(HRESULT 异常:0x80004004 (E_ABORT))

这发生在这里:

Outlook.Account DefaultAccount = null;
Outlook.Application outlookApp = GetOutlookApp();    //returns Application object of running Outlook instance / creates a new instance - it works for them.

DefaultAccount = GetAccountForFolder(outlookApp);    //returns the default account of the user. Tried it with a simple setup, only one account etc. - it works for them
String defaultemailaddress;

//CODE RUNS UNTIL THIS POINT
if (DefaultAccount == null)    //if somehow …
Run Code Online (Sandbox Code Playgroud)

c# outlook vsto office-addins outlook-addin

5
推荐指数
1
解决办法
1033
查看次数

加载项错误 该加载项无法启动

使用 Visual Studio 2017 C# Excel 2016/2019 Web 插件模板,我尝试创建一个基本插件来“将内容插入 Excel 电子表格 [VS 项目选项]”。

当我运行项目并显示以下消息时,我在 Excel 中的所有尝试都失败了:“加载项错误无法启动此加载项。” 关闭此对话框以忽略该问题,或单击“重新启动”重试。单击“重新启动”会在 Excel 中显示一个永远不会完成的“正在加载”对话框。

我尝试了以下所有步骤来解决此问题,但均未成功:

  • 以管理员模式运行VS
  • 从 Excel 2016 切换到 2019
  • 重置 IE 设置(确保 Internet 和受限站点处于保护模式)
  • 升级到Windows Build 1809
  • 重置 Excel 加载项缓存

此外,我还确保 localhost SSL 证书是受信任的,并且我可以浏览到 IIS Express 站点而不会出现安全警告。

我应该指出,这个问题仅发生在 VS2017 模板中。如果我使用节点并旁加载加载项,则在这台特定的开发计算机上没有任何问题。

我的问题是:

  • 如何从 Excel 或 VS2017 获取有关加载项未加载原因和此错误的更多信息?

office-addins excel-addins office-js

5
推荐指数
1
解决办法
1894
查看次数

使用 Office 365 的“设计创意”功能时,为什么 PowerPoint 会重置/清除 CustomDocumentProperties?

我们开发了一个 PowerPoint VSTO 加载项。为了同时处理多个演示文稿,我们为每个演示文稿使用唯一的 GUID,并将其存储在 CustomDocumentProperties 中,如此处所述

通过 Office 365,微软在 PowerPoint 中引入了一项名为“设计创意”的新功能。(这是“设计”选项卡上的最后一项)当我们使用此加载项时,有趣的是,存储在演示文稿中的 CustomDocumentProperties 被删除。

设计理念

它可以使用以下 VBA 代码轻松重现。首先,运行 AddCustomProperty 方法并使用 GetCustomProperty 进行验证,然后在幻灯片上使用设计理念。此后,当调用 GetCustomProperty 时,会引发异常。

Public Sub AddCustomProperty()
    On Error Resume Next
    ActivePresentation.CustomDocumentProperties("PresentationID").Value = "bb999da6f94c4692b31106994636d962"
    If Err.Number > 0 Then
        ActivePresentation.CustomDocumentProperties.Add _
            Name:="PresentationID", _
            LinkToContent:=False, _
            Type:=MsoDocProperties.msoPropertyTypeString, _
            Value:="bb999da6f94c4692b31106994636d962"
    End If
End Sub

Sub GetCustomProperty()
    MsgBox ActivePresentation.CustomDocumentProperties("PresentationID")
End Sub
Run Code Online (Sandbox Code Playgroud)

我找到了一个解决方案,即使用演示标签而不是 CustomDocumentProperties,但当前的代码库严重依赖于后者,这就是为什么我正在寻找其他可能更简单的替代方案。

另外,我们可以通过我们的加载项以某种方式禁用此功能吗?

powerpoint vba vsto office-addins

5
推荐指数
0
解决办法
363
查看次数

在构建 Outlook Addin 时,我应该如何处理在 iframe 中读取 cookie(第三方 cookie)

我目前正在为我们提供的一项服务开发 Outlook 插件,但在通过商店提交获取它时遇到问题。我的问题是,虽然该插件在 Outlook 中运行良好,但如果您尝试从 Office 365 上的 Safari 加载它,则 cookie 的读取将被阻止。

我们使用 Office.js SDK 来管理交换集成并提供用户登录的对话框。这将创建一个包含令牌的 cookie,然后我们在 JS 中读取该令牌以与任何 API 请求一起发送。启用阻止第三方 cookie 后(或使用 Safari 时),iframe 似乎无法访问来自同一来源的 cookie。启用第三方 cookie 后(或不使用 Safari 时),一切都会按预期运行。

我们面临的问题是,除非该插件可以在最新版本的 Safari 上运行,否则 Microsoft 不会批准该插件。

提前致谢。

cookies outlook office-addins office-js

5
推荐指数
1
解决办法
812
查看次数

AADSTS50020:租户中不存在用户帐户

我能够将另一个租户创建的应用程序注册为我自己租户的企业应用程序。我以用户身份登录该应用程序,但收到以下错误。


AADSTS50020:来自身份提供商“https://sts.windows.net/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/”的用户帐户“test001@testdomain001.onmicrosoft.com”在租户“testdomain002”中不存在,并且无法访问该租户中的应用程序“55555555-6666-7777-8888-999999999999”(OneDriveAPIBrowser_test001)。需要先将该帐户添加为租户中的外部用户。注销并使用不同的 Azure Active Directory 用户帐户再次登录。


在应用程序创建者租户不执行任何处理的情况下,另一个租户的用户如何使用它?

office-addins azure-ad-graph-api

5
推荐指数
1
解决办法
3万
查看次数

如何私下分发 Excel Office 加载项(w/office.js)?

Q1. 有没有什么方法可以私下分发 Excel Office 加载项(w/office.js)? (office.js 插件也会像 VSTO 的 .exe 或带密码的 .xla/.xlam 宏文件一样分发吗?)

Q2。如果我在本地服务器上运行 Office 加载项服务器(node.js),必须向最终用户分发什么? (与 VBA 宏不同,我想隐藏核心源逻辑。)

我现在正在开发一个 Excel Office 插件。但部署到我公司的最终用户似乎有一些限制。(我们现在正在测试试点环境,并使用office 365,但受到IT政策的限制)

当我参考下面的官方文档时,文档说私下部署加载项的方式是 Microsoft 365 管理中心或 SharePoint 目录。(AppSource 是公开给所有人的。)

参考。https://learn.microsoft.com/en-us/office/dev/add-ins/publish/publish

然而,它似乎必须使用微软的服务或组件,如SharePoint或管理中心。我不想使用这些物品,因为我想灵活应对各种环境。

我也读过下面的文章。

参考。如何分发私人办公插件?

但回复帖子似乎作者无法得到我也想知道的适当答案。

我想知道在不公开我的核心源逻辑的情况下分发 Excel Office 加载项(w/office.js)的其他方法,以及我必须向最终用户提供的最少材料是什么(ig 清单或其他内容)。

excel office-addins office365 office-js

5
推荐指数
1
解决办法
1498
查看次数