标签: office-js

获得环境的简洁方法(即Office版)

遗憾的是,Office API的某些功能在所有环境中的行为都不完全相同(例如:Excel Online和Excel 2013中的格式化).此外,Excel 2013中没有一些不错的新功能,但在Excel 2016中可用(Excel.js)

当然,我可以告诉用户他们只能在2016年使用我的应用程序,而不是实现在所有环境中都不完全支持的东西.

我更愿意向Excel 2013的用户提供我的应用程序,即使他们没有办法(或倾向于)升级到2016年.我宁愿优雅地降级我的功能列表在功能较少的环境中,而不是将应用程序的功能限制为整个)

它很容易封装与文档的所有交互,并根据环境运行不同的代码.也就是说,如果我知道我所处的确切环境.当前的office.js是否提供了一种发现主机应用程序的版本和上下文(在线/离线)的简洁方法?我在office.context等等找不到任何东西.

在网上有一些关于黑客攻击整个.getContext链条的建议,但这些似乎是"无证件"的,所以我对此并不满意.

有什么建议?

office365 office-js

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

如何在Word和Excel的在线版本中测试Office加载项?

我正在使用Visual Studio中的Office JavaScript API开发任务窗格Office加载项.当您运行该应用程序时,它将在桌面客户端版本的Office中运行.

Office Store要求说明

您的Office加载项必须完全适用于Office 2013和Office Online支持的操作系统,浏览器和设备.

所以我也需要在Office在线版本中进行测试.

问题是我无法找到一种方法来加载Word/Excel/Powerpoint Online中的应用程序并测试它,我也没有一个SharePoint设置,我可以发布应用程序测试它,然后将其提交给应用程序商店.

任何帮助都感激不尽.

ms-office office-addins office365 office-js

7
推荐指数
2
解决办法
2954
查看次数

使用Office JS API的Office VSTO加载项与Office加载项

最近,Microsoft推出了Office加载项体系结构,该体系结构允许开发远程托管的加载项,并在办公室内的IFrame中运行.我已经阅读了很多,试图了解这个架构是否可以替代VSTO,还是它们有单独的用例.VS 2015有两个模板.

在我的具体情况下,我想开发一个加载项,使用自定义导入功能扩展Excel 2016(例如自定义CSV,TSV,甚至XLSX).我不知道我应该选择哪种类型的项目.

excel vsto ms-office office-addins office-js

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

“加载项警告。此加载项的许可证信息丢失或已过期,因此它的功能可能有限”

我们的一位客户在尝试激活他们创建的应用程序时遇到问题。

该应用程序是免费发布的。

位置:https : //store.office.com/en-001/app.aspx?assetid=WA104379484&ui=en-US&rs=en-001&ad=US&appredirect=false

它被不同的用户多次下载并且运行良好。但是,对于某个特定用户,在尝试安装和使用该应用程序时,Excel Online 中会显示一条错误消息:

“加载项警告。此加载项的许可证信息丢失或已过期,因此它的功能可能有限”

我浏览了以下文档:

https://dev.office.com/officestore/docs/add-in-license-schema

但是,我不确定该问题是否与 Office 商店中的应用程序发布/许可有关,因为该问题特定于单个用户。我尚未与最终用户建立通话并解决问题。在我继续之前,我想检查一下您是否遇到过这个错误。

任何线索都会非常有帮助。

先感谢您!

最好的问候 Saptarshi

office-addins word-addins office-js office-store

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

iOS上的OfficeJS Outlook加载项的侧载问题

更新#2:

我创建了OfficeDev/office-js#124OfficeDev/office-js-docs#1415,以便Microsoft的某个人能够回答这个问题.使用Microsoft支持,无论是在线还是在Outlook for iOS应用程序中,都证明是徒劳的.

更新#1:

看起来将清单基本级别设置的要求从Mailbox 1.5降级到Mailbox 1.4会使我的侧载加载项出现在我的iOS设备上.这看起来像个错误!

但是,这样做可以扩展支持的平台列表以包含Office 2013. 根据我的另一个问题的答案,这意味着我需要在VersionOverridesV1_0级别设置Mailbox 1.4.

我仍然在VersionOverridesV1_1级别设置了Mailbox 1.5,因此支持调用Outlook REST API并支持可执行的任务窗格.

使用在Mailbox 1.5中添加的API的加载项是否可以像我在Outlook 2013上预期的那样工作?

(具体来说,我使用新的Office.context.mailbox.getCallbackTokenAsync()方法来获取REST令牌.)


我试图让我的插件出现在我的iOS设备上,以便我可以测试它.该设备是安装了iOS 11.0.3的iPhone 6s.

我想针对:

  • Outlook 2016或更高版本
  • 网络上的展望
  • Outlook 2016 for Mac
  • 适用于iOS的Outlook

我需要Mailbox 1.5才能支持调用Outlook REST API并支持可修复的任务窗格.

这是我的清单:

<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp
  xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
  xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="MailApp">
  <Id>40ca534e-480c-444f-85bf-9f7051f23fe2</Id>
  <Version>1.0.2.0</Version>
  <ProviderName>TitleX E-Conveyancing Pty Ltd</ProviderName> …
Run Code Online (Sandbox Code Playgroud)

ios office-js outlook-web-addins

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

使用自定义函数提交加载项(更新?)

我问了一个关于 6个月前提交自定义函数加载项的问题.目前的结论是an add-in that uses custom functions cannot currently be published to the Office Store or via Office 365 centralized deployment.

但我意识到文件已经改变了,现在已经改变了

已知的问题

......

尚未启用通过Office 365管理员门户和AppSource进行的部署.

而且,我functions在Script Lab中找到了新按钮.用户可以注册一个类似的功能=ScriptLab.BlankSnippet1.add10(…),并在Excel中使用它.

所以我的问题是

1)Script Lab是否已ScriptLab在AppSource中成功提交了一个函数?

2)今天,微软之外的其他开发人员是否可以使用Script Lab等自定义函数提交加载项?

ms-office office-js scriptlab custom-functions-excel

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

sessionId - 如何检测多个用户之间的对话

用例:

我们正在创建一个分析邮件内容的系统。如果我们能够根据其内容对电子邮件进行分类和存档,我们希望自动对同一对话/线程中的后续电子邮件进行分类。

问题在于,当我们代表不同用户查询时,作为(邮件)消息的一部分获得的对话 ID 不是唯一的。

一个例子:

答:我的收件箱中给定线程的对话 ID。

B:同一线程的 sessionId,但在不同用户的收件箱中。

价值观:

答:AAQkADUyZWYxNzljLTc4NjItNGMzYy1iZDYwLTE4NWEzNDg1OWUzZQAQABlanHOPI0v1ukA7KePaYv4=。乙:AAQkAGVkNGRjNWNmLTAwNTItNDA2NC1hOThhLTU5NTUyNGFjNTM5ZAAQABlanHOPI0v1ukA7KePaYv4=

我可以使用此对话 ID 的一部分来识别不同用户之间的相同对话吗?该模式似乎是给定对话的最后 25-26 个字符是唯一的。其余的是 Guid + 某种后缀。

编辑:我的问题与 Microsoft Graph API 的使用有关。在 SO 上回答了与 ConversationIds 和 Outlook 电子邮件相关的问题,但这些问题描述了直接从 Outlook 客户端(或可能通过 Outlook api)获取电子邮件的情况。例如,像 ConversationIndex 和 ConversationTopic 这样的属性不在我从 Graph API 获得的消息中。

outlook outlook-addin office-js outlook-web-addins microsoft-graph-api

7
推荐指数
0
解决办法
701
查看次数

如何使用 Office JS 在 Word 文档正文中添加书签

Office JS 在preview 中提供了以下功能,但我找不到任何示例。

这是我尝试过的但似乎不起作用,不知道我在这里缺少什么,因为此代码插入了文本但未创建书签。

Word.run(function (context)
{
    let range = context.document.getSelection();
    return context.sync().then(function ()
    {
        range.insertText(`Test Bookmark`, Word.InsertLocation.replace);

        let uniqueStr = new Date().getTime();
        let bookmarkName = `Test_BookmarkCode_${uniqueStr}`;
        range.insertBookmark(bookmarkName);
    });
});
Run Code Online (Sandbox Code Playgroud)

交叉张贴在这里

ms-word office-addins office-js office-js-helpers

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

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无响应

重现步骤:

  1. 单击任务窗格内容中的任何内容.
  2. 将鼠标移到工作表上(不要点击任何内容).
  3. 在工作表上滚动鼠标滚轮.
  4. 请注意,Excel变得无法响应.
  5. 最小化然后恢复Excel.请注意,Excel再次响应.

我能够使用Visual Studio中的基本Excel加载项项目模板重现这一点.

我目前正在使用最新版本的Excel(16.0.7726.1030).

任何解决方法?

谢谢!

excel office-js

6
推荐指数
1
解决办法
256
查看次数