标签: javascript-api-for-office

如何在任务窗格中单击后将MS字光标焦点发送回当前文档

我使用word java script API开发了一个Word加载项.当我在任务窗格中单击以执行某些操作时,光标焦点将从当前文档中删除,我无法编辑该文档,直到单击该文档为止.请教我如何在任务窗格中执行某些操作时将光标焦点设置回当前文档.

谢谢.

ms-word ms-office javascript-api-for-office office-js

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

有没有办法从 Excel Addin 将宏插入到工作表中?

我搜索了文档Office Excel API,但根本找不到任何提及,它是如何实现的。

问题:

幸运的 API 功能或某种错误可以通过 VBA 宏轻松解决。

但是,要做到这一点,我们只有两种可能性:

  1. 手动将宏插入到工作表中,这将在工作表上捕获一些事件,并且来自插件的 JS 将触发该事件(此解决方案来自非常古老的论坛(如果我能找到链接,我将在此处插入))。

  2. 在插件运行时通过JS代码插入宏到工作表(context.workbook.worksheet?),甚至它也不能被插件执行,但在这种情况下,最终用户根本不需要管理宏——我们可以进行宏的处理使用相同的逻辑运行更流畅(JS 将宏插入工作表中,更改工作表中的一些值,然后触发一些宏,然后(例如在 JS 中超时或仅通过 JS 中的另一个事件我们可以轻松删除整个带有此宏的工作表))。

所以问题是,是否有可能以某种方式使用 Excel API 制作类似于解决方案 2 的东西?(从插件插入/删除VBA代码的某种功能)

我将不胜感激任何帮助!

说明问题的例子

我正在使用 JavaScript API,但不幸的是,该 API 并没有涵盖 VBA 中已经存在的全部功能(我希望还没有)。让我用一个简单的例子来解释它:

想象一个任务:

  1. 我们需要从工作簿 1 的工作表 1 中复制一些信息

  2. 然后我们需要创建一本书并将值放入新工作簿 2

  3. 然后我们需要向用户建议需要保存它(新工作簿 2)的位置。

  4. 然后我们需要保存并关闭工作簿 2。

VBA 很容易解决这个问题,但在 JS API 的情况下 - 这个问题没有完整的解决方案(没有第三方应用程序)。

您可以通过以下链接比较 API JS 和 VBA:

工作簿 JS API

工作簿 VBA API

所以我想要做的 - 是在 JavaScript 中编写实际的 VBA 宏并将这个 VBA 宏插入到工作表中以使宏可执行。

如何通过工作表上的某些值更改使宏可执行?

我发现,如果您调用select方法直接应用于单元格并Worksheet_SelectionChange …

excel vba worksheet javascript-api-for-office office-js

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

使用适用于 Office 的 JavaScript API 获取邮件正文

我正在开发一个简单的邮件应用程序,我需要获取消息正文。MSDN说,Office JavaScript API 1.1版本有对象属性,可以这样获取:bodymessage

Office.context.mailbox.item.body;
Run Code Online (Sandbox Code Playgroud)

但问题是我需要访问bodyinread mode和 MSDN 声明:

读取模式: body 属性未定义。

body该财产为什么undefinedread mode以及我如何访问它?(如果可能的话)

outlook-addin javascript-api-for-office office-js

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

如何在Word加载项中打开新的Word docx文档

我已经使用Word javascript API开发了Word Add-in。我的Document .docx文件在服务器上,我需要在加载项中单击按钮后以新Word文档的形式打开该.docx文档。

请指导我如何在Word加载项中打开新文档。

谢谢。

ms-word ms-office office365 javascript-api-for-office office-js

3
推荐指数
2
解决办法
1987
查看次数

是否可以在 Outlook Web 加载项应用程序中获取多个选定邮件的数据?

在 Outlook COM 加载项 (C#) 中,我能够像这样在 Outlook 中检索所有选定的邮件

var selection = Globals.ThisAddIn.Application.ActiveExplorer().Selection;
List<Outlook.MailItem> outlookMailList = new List<Outlook.MailItem>();
foreach (object mail in selection)
  outlookMailList.Add((Outlook.MailItem)mail);
Run Code Online (Sandbox Code Playgroud)

将选定的邮件与一些元数据存储在 DMS 中。

现在我想用 Javascript API for Office (office.js) 做同样的事情。

  1. 这里的正确入口点是什么?因为当我在 Outlook 中选择多封邮件时,默认功能区中的 OutlookTab 按钮将被停用。

另见http://bettersolutions.com/javascript-api/hosts/extensionpoint.htm

  1. 为了检索我找到的邮件信息

selectedMail = Office.context.mailbox.item;
Run Code Online (Sandbox Code Playgroud)

我现在如何获取 Outlook 中所有标记邮件的数据。我希望有类似的东西

selectedMails = Office.context.mailbox.items;
// OR
selectedMails = Office.context.mailbox.selectedItems;
Run Code Online (Sandbox Code Playgroud)

有人知道如何检索哪些邮件被选择到 TaskPane 或 CustomPane 的信息吗?分别是否有可能?非常感谢。

outlook add-in outlook-addin javascript-api-for-office office-js

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

为什么office.js在本地引用时不起作用?

基于GitHub上名为LoadingAndWritingOOXMLWeb的代码,我有一个完美的功能添加,但有一些修改.
但是我想离线演示 - 或者至少在网络不够可靠的地方进行演示.
所以我打开URL https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js 并保存为office.js,将文件复制到与我的html文件相同的文件夹,然后按如下方式更改引用:

<!-- <script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script> -->


<script src="office.js" type="text/javascript"></script>  
Run Code Online (Sandbox Code Playgroud)

保存,刷新缓存等.现在,当我单击添加时,在Office中获取片刻时间,但没有任何插入.更改代码后,再次愉快地插入.

该文件未被阻止,可以使用Chrome中的查看源打开,从HTML浏览到js文件,因此可以访问.
当我比较时,我从我的代码中看到的与Chrome中的原始版本在Chrome视图源中的内容看起来完全相同.

我错过了一些明显的东西吗 谢谢你的帮助.

javascript sharepoint-2013 javascript-api-for-office office365api office-js

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