标签: office-addins

在没有加载项的情况下启动Word

有没有办法在没有插件的情况下启动MS Word(仅此实例)?我只找到一种禁用完整加载项的方法。

ms-word ms-office office-addins

2
推荐指数
1
解决办法
9857
查看次数

Office365的加载项:从任务窗格加载项将数据插入Excel工作表

我肯定错过了什么:

[问题]:

我有一个二维数据数组,我想从单元格A1开始插入当前工作表.我还必须格式化这些数据.当前文档可能是空的或不是.我无法控制这一点.

稍后,我需要从文档中删除数据并插入新数据.这组新数据可能具有不同的维度.

使用Office JavaScript Api似乎无法做到这一点.

我尝试使用TableBindings等所有事情都失败了.在许多情况下,应该根据MSDN工作的功能失败,给我一些神秘的错误消息,例如"内部错误"(代码5001)或不支持的绑定操作(3010).我必须使用tablebindings,因为我无法根据MSDN文档将格式应用于其他任何内容.

以下解决方案是不可接受的:

  • 强制用户使用具有预先存在的命名表的特定文档模板
  • 在我的加载项开始工作之前强制用户选择单元格"A1".
  • 在插入数据之前强制用户选择范围.

从可用性的角度来看,所有这些都是噩梦般的解决方案.

可以从命名项创建一个绑定,并通过计算列和行来构建范围,并构建一个类似于"A1:C232"的字符串,但这只能工作一次,因为:

  • 我无法删除数据(是的.在使用这样的命名范围创建的绑定上调用"deleteAllDataValuesAsync"抛出错误3010(即使绑定说它是"表"绑定.. wat?).
  • 我不能用不同大小的数据覆盖它(覆盖错误)
  • 我无法在其上设置格式(是的,它是作为表绑定创建的绑定,是的,我可以调用setFormatAsync函数,它会抛出"内部错误,5001" - > #headdesk

我希望微软的某位读者能够读到这一点并指出我正确的方向.我真的希望!因为我开始担心这实际上是设计的.(在最后几周的斗争之后,我对office.js感到非常沮丧,我很难不咆哮,所以我会在这里停下来......不要让我开始使用ui面料)

excel office-addins office365 office-js

2
推荐指数
1
解决办法
773
查看次数

Office.js回调中断Angular Controller

我正在使用AngularJS处理PowerPoint-AddIn.要获取用户语言,我使用Office.context.displayLanguage,它仅在Office.initialize -Callback中可用.我通过Angular-Factory获得了我的语言字符串.当我将Office.initialize -Callback放入我的Angular Controller中时,它会破坏Controller-Functionality,并且我的页面上的按钮不再有效.我究竟做错了什么?

myApp.controller('angularHomeController', ['$scope', 'lang', function ($scope, lang) {
    $scope.lang = lang.getLocaleStrings("en-US");
    Office.initialize = function (reason) {
        $scope.lang = lang.getLocaleStrings(Office.context.displayLanguage);
    }
}]);
Run Code Online (Sandbox Code Playgroud)

我将语言默认设置为英语,但我希望在初始化文档时更改它并且我可以访问displayLanguage.我的应用程序工作正常,直到我将Office.initialize -Callback放在我的控制器内.我应该以某种方式注入Office对象吗?我没有收到任何错误消息.

powerpoint office-addins angularjs office-js

2
推荐指数
1
解决办法
639
查看次数

Office.context.ui.displayDialogAsync抛出5001内部错误

我正在使用Visual Studio项目模板创建一个新的Outlook Mail加载项,我在其中获取一个显示当前所选电子邮件属性的示例.

我添加了一个带有click事件处理程序的按钮,使用以下代码打开一个对话框:

  $('#clickMeButton').click(function () {
      Office.context.ui.displayDialogAsync('https://localhost/OutlookAddinTest/MessageDialog.html', {
          height: 40,
          width: 40,
          requireHTTPS: true
      }, function (result) {
          _dlg = result.value;
          _dlg.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, dialogMessageReceived);
      });
  });
Run Code Online (Sandbox Code Playgroud)

我正在使用Chrome中的Outlook网络客户端进行调试: Chrome中调试会话的屏幕截图

我不知道它是否与此错误相关,但在我点击clickMeButton之前,我可以在加载网站后看到以下错误: 在此输入图像描述

osfruntime.js:13 Error while parsing the 'sandbox' attribute: 'ms-allow-popups' is an invalid sandbox flag.OSF.OsfControl._createIframeAndActivateOsfControl @ osfruntime.js:13
Run Code Online (Sandbox Code Playgroud)

displayDialogAsync(...)函数不应该用于Outlook Mail加载项吗?这可能是一个问题,因为它会在主Outlook html页面的上下文中加载另一个html页面.但它不能在Outlook桌面客户端中运行.

office-addins outlook-addin office-js

2
推荐指数
1
解决办法
636
查看次数

Word中的上下文菜单添加Ins

我正在为Microsoft Word开发一个Add In.我期待添加自定义上下文菜单.在Word文档中使用上下文菜单是否可行?

office-addins word-addins office-js

2
推荐指数
1
解决办法
779
查看次数

如何获取office.js中一个sheet的所有公式

有一个工作表名称Sheet1,我想要一个包含该工作表单元格中使用的所有公式的数组。像这样的东西:

Excel.run(function (ctx) {
    var formulas = getAllFormulasOfSheet(ctx, 'Sheet1')
    // or
    getAllFormulasOfSheet(ctx, 'Sheet1').then(function(result){
        var formulas = result;
    });

    // formulas should be like:
    ['SUM(A1:B3)', 'SUM(A3:C3)']
})
Run Code Online (Sandbox Code Playgroud)

office-addins office-js

2
推荐指数
1
解决办法
1050
查看次数

C# VSTO Outlook 插件:不释放 MailItem 对象的可能影响是什么

Marshal.ReleaseComObject在 Outlook 中与 MailItems 交互时使用的重要性是什么?

我参考了在https://docs.microsoft.com/en-us/visualstudio/vsto/walkthrough-creating-your-first-vsto-add-in-for-outlook?view创建 C# VSTO Outlook 插件的演练 =vs-2019

他们有一个修改现有选定邮件项目主题和正文的示例。

void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
{
    Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem;
    if (mailItem != null)
    {
        if (mailItem.EntryID == null)
        {
            mailItem.Subject = "This text was added by using code";
            mailItem.Body = "This text was added by using code";
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

该示例结束时没有提及使用 释放邮件项目对象Marshal.ReleaseComObject

但在https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.marshal.releasecomobject?view=netframework-4.8的 .Net API 参考中,他们提到:

您应该使用此方法及时或在必须以特定顺序释放对象时释放包含对资源的引用的基础 COM 对象。

因此,如果我们未能在我们引用的 MailItem 上使用 Marshal.ReleaseComObject,显然会有一些后果?

是否存在不使用 Marshal.ReleaseComObject 会导致问题的特定用例?

谢谢

c# outlook vsto office-addins outlook-addin

2
推荐指数
1
解决办法
338
查看次数

如何在Mac上清除Excel 2016任务窗格加载项的客户端浏览器缓存?

这是前一个问题的后续问题,其中"我如何确保在任务窗格加载项中看到最新的JS代码"的答案涉及通过服务器添加的元/无缓存标记控制客户端缓存行为(或版本化服务器资源).

但是,我正在寻找一种在客户端上的手动方式,以便最终用户清除似乎存储JavaScript文件的客户端缓存,并防止服务器上的更新JS文件被任务窗口添加使用-在.在开发过程中,我将经常在服务器上更新JS资源,我正在寻找允许使用这些更新文件的客户端解决方案.

环境:在Mac上运行的Excel 2016桌面版(OSX 10.11.5)使用Excel/Office.js v1.2的任务窗格加载项.

场景:将加载项工件部署到Web服务器,在Mac上运行加载项.然后在加载项中更新foo.js中的代码,重新部署到Web服务器.运行加载项并查看foo.js中的旧(更新前)行为.

我尝试过的:

  1. 在同一台Mac上,直接从Safari中的Web应用程序加载foo.js.我可以看到js代码中我希望在更新版本中的更改.

  2. 清除Safari缓存(隐私>删除所有网站数据)(我怀疑这不会基于#1 - Safari似乎与Excel共享缓存但值得一试) - 没有改变任何东西.

  3. 在〜/ Library/Containers/com.microsoft.Excel下试图找到一个缓存 - 删除〜/ Library/Containers/com.microsoft.Excel/Data/Library/Caches/com.microsoft.Excel - 没有帮助.

  4. 使用任务窗格上下文菜单中的重新加载菜单项(看起来像Mac上的[i]) - 没有区别:仍然看到旧的foo.js.

存储了Excel(桌面)2016任务窗格加载项引用的JavaScript文件在哪里?(在Mac上)以及最终用户如何删除它们?

macos excel office-addins browser-cache office-js

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

外部链接的 Office 加载项清单中不需要 AppDomains?

我创建了一个简单的 Office 加载项,其中包含没有任何<AppDomains>部分的清单。然后我将以下链接添加到加载项 .html 文件中:

<a href="https://www.tutorialrepublic.com">Test</a>
Run Code Online (Sandbox Code Playgroud)

当我在 Office Online 或桌面 MS Word 中加载加载项并单击链接时,加载项框架会加载来自 www.tutorialrepublic.com 的 html。

我原以为这会根据此处的描述被阻止:https : //docs.microsoft.com/en-us/office/dev/add-ins/develop/add-in-manifests?tabs=tabid-1 #specify-domains-you-want-to-open-in-the-add-in-window

任何人都可以解释这种差异吗?我发现我也可以提交到表单并将 window.location.href 设置为外部域,它们在插件 iframe 中打开,而不是像预期的那样在单独的窗口中打开。

office-addins office-js

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

用户开始撰写新电子邮件后如何显示一些消息

对于 Office 365 Outlook Web App,我们希望在最终用户上传附件后将附件转换为链接,但是我们在当前的 Outlook 插件中没有看到附件通知事件。

我们可以做的另一种方法是要求他们使用我们自己的按钮进行上传,但是我们需要引导最终用户使用我们自己的按钮,一旦显示新的电子邮件消息框,我们是否可以在电子邮件正文顶部添加一些消息,如下所示? 在此输入图像描述

不知何故,根据我们的研究,Outlook Addin 目前只有一个事件,即SendEvent,有人可以确认这一点吗?如果是这样,那就相当有限了。

office-addins outlook-addin office-js

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