office-js 相关问题

OfficeJS是Microsoft Office客户端应用程序的新JavaScript扩展性模型。您可以扩展在Windows,Web,iOS和Mac上运行的Office应用程序。此模型适用于从Office 2013开始的Office客户端应用程序。请阅读标记信息以获取有关如何增加对问题的高质量答案的机会的其他指导。


在MS Word外接Javascript API中获取列表样式类型

我正在尝试使用Word外接Javascript API来打印文档中列表的级别和样式类型。我正在使用以下代码:Word.run(function(context){var range = ...

回答 1 投票 0

为Outlook编写电子邮件时获取消息正文更新通知

我正在使用Outlook插件,我需要在用户编写邮件时获取邮件正文。我知道我们可以使用Office的JavaScript API获取主体异步调用来获取主体。但是很长一段时间...

回答 1 投票 1

Outlook Web加载项的自定义属性的最大大小限制

我正在开发Outlook Web插件。对于功能的一部分,我们需要在会议项目中存储一些自定义属性。似乎硬限制为2500 ...

回答 1 投票 0

从Web加载项(Office js)订阅Outlook通知

我正在为Outlook开发Web外接程序,作为我们会议管理Web应用程序的扩展。问题是我们需要知道用户何时在Outlook中更改会议日期(不打开...

回答 1 投票 0

[通过Office加载项(Word JS)使用Microsoft Graph访问SharePoint

我已经开发了Office.js Word加载项,并且正在使用SSO功能,如此处所述。它使用Office.Auth接口方法getAccessTokenAsync,如下所示。如描述的那样工作,但是...

回答 1 投票 0

使用Office JS遍历Word文档

我正在使用Angular制作Word加载项,而我在这里停留在这里。我正在尝试遍历文档以查找单词的出现,但是没有对...

回答 1 投票 1

无法获得未定义或空引用的属性'CategoryColor'

[尝试将分类设置为邮件时,出现以下错误。无法获取未定义或空引用的属性“ CategoryColor”。支持需求集1.8,并且...

回答 1 投票 0

Outlook加载项-另存为对话框(保存文件)和外部链接

我正在开发Outlook Web加载项(上下文),用户可以在其中下载特定文件。我现在面临的问题是我无法在Outlook for Desktop中强制将对话框另存为...

回答 1 投票 0

如何实际减少工作表的使用范围(Excel插件)

我的插件从每张纸上删除了很多行,但是当我按ctrl + end时,光标仍然移到初始范围的最后一个单元格,现在该单元格为空。这是我的简略版本...

回答 1 投票 0

哪些Office JS函数在Mac Excel客户端上的工作方式不同?

我的Excel加载项在Windows的Excel客户端,Windows浏览器上的Excel Web和Mac浏览器上的Excel Web上都可以正常使用。但是,它在Mac的Excel客户端中以“ GeneralException”失败。...

回答 2 投票 -1

如何配置Office-js excel react加载项以使用react-router-dom或替代解决方案?

所以我试图使用react来设置Office-js excel外接程序(使用在这里https://github.com/OfficeDev/generator-office上找到的yeoman office-js生成器,并且遇到配置问题...

回答 1 投票 0

自定义功能不适用于IIS托管的Office Excel加载项

我们将批处理自定义功能项目作为托管应用程序部署到IIS中。任务窗格与API配合正常。但是,当尝试作为自定义函数调用时,遇到问题加载自定义...

回答 2 投票 0

OpenXML DataBinding不适用于名称空间

我有一个Word文档,其中包含一个内容控件XML。这是来自document.xml的内容控件的代码: [[[[]]]] 下面的单元测试表明,只有在使用命名空间前缀(例如“ ex”)的情况下,您才能将w:sdt元素绑定到具有XML命名空间(例如“ http://example.com”)的自定义XML元素。 )放在w:prefixMappings元素的w:xpath和w:dataBinding属性中。 不过,您的自定义XML元素不需要名称空间前缀。因此,以下两个XML文档都将起作用: <?xml version="1.0" encoding="utf-8"?> <ex:Root xmlns:ex="http://example.com"> <ex:Node>VALUE1</ex:Node> </ex:Root> <?xml version="1.0" encoding="utf-8"?> <Root xmlns="http://example.com"> <Node>VALUE1</Node> </Root> 这里是单元测试: using System; using System.Xml.Linq; using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.CustomXmlDataProperties; using DocumentFormat.OpenXml.Packaging; using OpenXmlPowerTools; using Xunit; namespace CodeSnippets.Tests.OpenXml.Wordprocessing { public class DataBoundContentControlTests { private const WordprocessingDocumentType Type = WordprocessingDocumentType.Document; private const string NsPrefix = "ex"; private const string NsName = "http://example.com"; private static readonly XNamespace Ns = NsName; private static string CreateCustomXmlPart(MainDocumentPart mainDocumentPart, XElement rootElement) { CustomXmlPart customXmlPart = mainDocumentPart.AddCustomXmlPart(CustomXmlPartType.CustomXml); customXmlPart.PutXDocument(new XDocument(rootElement)); return CreateCustomXmlPropertiesPart(customXmlPart); } private static string CreateCustomXmlPropertiesPart(CustomXmlPart customXmlPart) { XElement rootElement = customXmlPart.GetXElement(); if (rootElement == null) throw new InvalidOperationException(); string storeItemId = "{" + Guid.NewGuid().ToString().ToUpper() + "}"; // Create a ds:dataStoreItem associated with the custom XML part's root element. var dataStoreItem = new DataStoreItem { ItemId = storeItemId, SchemaReferences = new SchemaReferences() }; if (rootElement.Name.Namespace != XNamespace.None) { dataStoreItem.SchemaReferences.AppendChild(new SchemaReference {Uri = rootElement.Name.NamespaceName}); } // Create the custom XML properties part. var propertiesPart = customXmlPart.AddNewPart<CustomXmlPropertiesPart>(); propertiesPart.DataStoreItem = dataStoreItem; propertiesPart.DataStoreItem.Save(); return storeItemId; } [Fact] public void CanDataBindBlockLevelSdtToCustomXmlWithNsPrefixIfNsPrefixInPrefixMapping() { // The following root element has an explicitly created attribute // xmlns:ex="http://example.com": // // <ex:Root xmlns:ex="http://example.com"> // <ex:Node>VALUE1</ex:Node> // </ex:Root> // var customXmlRootElement = new XElement(Ns + "Root", new XAttribute(XNamespace.Xmlns + NsPrefix, NsName), new XElement(Ns + "Node", "VALUE1")); using WordprocessingDocument wordDocument = WordprocessingDocument.Create("SdtBlock_NsPrefix_WithNsPrefixInMapping.docx", Type); MainDocumentPart mainDocumentPart = wordDocument.AddMainDocumentPart(); string storeItemId = CreateCustomXmlPart(mainDocumentPart, customXmlRootElement); mainDocumentPart.PutXDocument(new XDocument( new XElement(W.document, new XAttribute(XNamespace.Xmlns + "w", W.w.NamespaceName), new XElement(W.body, new XElement(W.sdt, new XElement(W.sdtPr, new XElement(W.dataBinding, // Note the w:prefixMapping attribute WITH a namespace // prefix and the corresponding w:xpath atttibute. new XAttribute(W.prefixMappings, $"xmlns:{NsPrefix}='{NsName}'"), new XAttribute(W.xpath, $"{NsPrefix}:Root[1]/{NsPrefix}:Node[1]"), new XAttribute(W.storeItemID, storeItemId))), new XElement(W.sdtContent, new XElement(W.p))))))); // Note that we just added an empty w:p to the w:sdtContent element. // However, if you open the Word document created by the above code // in Microsoft Word, you should see a single paragraph saying // "VALUE1". } [Fact] public void CanDataBindBlockLevelSdtToCustomXmlWithoutNsPrefixIfNsPrefixInPrefixMapping() { // The following root element has an implicitly created attribute // xmlns='http://example.com': // // <Root xmlns="http://example.com"> // <Node>VALUE1</Node> // </Root> // var customXmlRootElement = new XElement(Ns + "Root", new XElement(Ns + "Node", "VALUE1")); using WordprocessingDocument wordDocument = WordprocessingDocument.Create("SdtBlock_DefaultNs_WithNsPrefixInMapping.docx", Type); MainDocumentPart mainDocumentPart = wordDocument.AddMainDocumentPart(); string storeItemId = CreateCustomXmlPart(mainDocumentPart, customXmlRootElement); mainDocumentPart.PutXDocument(new XDocument( new XElement(W.document, new XAttribute(XNamespace.Xmlns + "w", W.w.NamespaceName), new XElement(W.body, new XElement(W.sdt, new XElement(W.sdtPr, new XElement(W.dataBinding, // Note the w:prefixMapping attribute WITH a namespace // prefix and the corresponding w:xpath atttibute. new XAttribute(W.prefixMappings, $"xmlns:{NsPrefix}='{NsName}'"), new XAttribute(W.xpath, $"{NsPrefix}:Root[1]/{NsPrefix}:Node[1]"), new XAttribute(W.storeItemID, storeItemId))), new XElement(W.sdtContent, new XElement(W.p))))))); // Note that we just added an empty w:p to the w:sdtContent element. // However, if you open the Word document created by the above code // in Microsoft Word, you should see a single paragraph saying // "VALUE1". } [Fact] public void CannotDataBindBlockLevelSdtToCustomXmlWithDefaultNsIfNotNsPrefixInPrefixMapping() { // The following root element has an implicitly created attribute // xmlns='http://example.com': // // <Root xmlns="http://example.com"> // <Node>VALUE1</Node> // </Root> // var customXmlRootElement = new XElement(Ns + "Root", new XElement(Ns + "Node", "VALUE1")); using WordprocessingDocument wordDocument = WordprocessingDocument.Create("SdtBlock_DefaultNs_WithoutNsPrefixInMapping.docx", Type); MainDocumentPart mainDocumentPart = wordDocument.AddMainDocumentPart(); string storeItemId = CreateCustomXmlPart(mainDocumentPart, customXmlRootElement); mainDocumentPart.PutXDocument(new XDocument( new XElement(W.document, new XAttribute(XNamespace.Xmlns + "w", W.w.NamespaceName), new XElement(W.body, new XElement(W.sdt, new XElement(W.sdtPr, new XElement(W.dataBinding, // Note the w:prefixMapping attribute WITHOUT a namespace // prefix and the corresponding w:xpath atttibute. new XAttribute(W.prefixMappings, $"xmlns='{NsName}'"), new XAttribute(W.xpath, "Root[1]/Node[1]"), new XAttribute(W.storeItemID, storeItemId))), new XElement(W.sdtContent, new XElement(W.p))))))); // Note that we just added an empty w:p to the w:sdtContent element. // If you open the Word document created by the above code in Microsoft // Microsoft Word, you will only see an EMPTY paragraph. } } }

回答 1 投票 0

[office.js插件,当企业中的应用程序资源商店被停用时

我想创建一个office.js应用程序供我(大型)公司使用。但是,默认情况下,我们的MS Office产品中已禁用Microsoft AppStore。因此,我将无法分发/ ...

回答 1 投票 0

在哪里找到可用于XLL兼容自定义功能的XLL

为了与现有XLL兼容,我想在我的Excel加载项的清单中标识等效的XLL。我现有的加载项正在使用XLL技术,但是它是通过使用第三方来实现的...

回答 2 投票 1

Office 365加载项Excel-外部数据

我正在寻找一些有关如何使用基于Javascript API的Office 365 Excel加载项的指南。加载项的目的是允许用户自定义自己的excel文件...

回答 1 投票 0

我应该如何定义Outlook JS加载项与Outlook 2013不兼容?

我正在尝试通过Outlook加载项的AppSource验证过程。以下是验证团队建议的引文:“如果您不支持2013 SP1,因为仅使用API ...

回答 2 投票 1

如何在OfficeJS中测试预览要求

我在Github上创建了要点,我在其中使用OfficeJS中的某些Preview函数来处理Word文档中的设置。要在OfficeJS中预览设置的要点为了避免在...

回答 1 投票 0

包含自定义功能的加载项在使用集中式部署发布时仍会出现在Office 2016/2019中

如警告块中此处所述:https://docs.microsoft.com/zh-cn/office/dev/add-ins/develop/specify-office-hosts-and-api-requirements如果Office托管或平台不支持...

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.