在一个工作簿(从别人),我需要分析,他们用一个公式来构造字符串列表:04-09-01,04-09-02,04-09-03等,这些都general为格式.在我的部分代码中,我需要将这些值复制到其他地方.但是,因为这些值是相当特殊的,它们会被自动视为Date(而他们显然不是日期用户),并转化为09/04/2001,09/04/2002,09/04/2003等等.因此,这些值完全改变,以及基于这些粘贴值计算导致错误.
这是一个测试代码:
function test () {
Excel.run(function (ctx) {
var r0 = ctx.workbook.worksheets.getItem("Sheet1").getRange("A2:A10");
var r1 = ctx.workbook.worksheets.getItem("Sheet1").getRange("F2:F10");
r0.load(["values"]);
return ctx.sync()
.then(function () { console.log(r0.values.toString()); r1.values = r0.values; })
.then(ctx.sync)
.then(function () { r1.load(["values"]); })
.then(ctx.sync)
.then(function () { console.log(r1.values.toString()); })
});
}
Run Code Online (Sandbox Code Playgroud)
控制台中的结果显示值已完全更改:
在Excel中,它显示:
请注意,Excel本身并不会系统地将这些值转换为日期.例如,如果我们仅值复制04-09-01到另一个单元格.Excel确实会发出警告并建议将其转换为日期,但用户可以忽略此警告并保持04-09-01原样:
所以我的问题是,是否有一种方法或解决方法可以在JavaScript API中禁用此自动转换,以便我们可以忠实地复制值?
编辑1:
我试图用来numberFormat保持范围的初始格式.首先,我将格式A2:A0如下所示General.
然后,我运行以下代码:
function test () { …Run Code Online (Sandbox Code Playgroud) 我们正在开发一个带有office.js API的办公室Addin.一个经常出现的问题会损害我们在商店的声誉.这个问题是Excel Addin(office.js)中的工作表在滚动之后被冻结.我写了一个简单的Script Lab代码片段,它重现了工作表冻结问题.在其上描述了重现这一步骤的所有步骤.该片段位于:https://gist.github.com/Nassim33/5eaf0bdb4a5b0b1a8db99f58b6de101e
遗憾的是,Office API的某些功能在所有环境中的行为都不完全相同(例如:Excel Online和Excel 2013中的格式化).此外,Excel 2013中没有一些不错的新功能,但在Excel 2016中可用(Excel.js)
当然,我可以告诉用户他们只能在2016年使用我的应用程序,而不是实现在所有环境中都不完全支持的东西.
我更愿意向Excel 2013的用户提供我的应用程序,即使他们没有办法(或倾向于)升级到2016年.我宁愿优雅地降级我的功能列表在功能较少的环境中,而不是将应用程序的功能限制为整个)
它很容易封装与文档的所有交互,并根据环境运行不同的代码.也就是说,如果我知道我所处的确切环境.当前的office.js是否提供了一种发现主机应用程序的版本和上下文(在线/离线)的简洁方法?我在office.context等等找不到任何东西.
在网上有一些关于黑客攻击整个.getContext链条的建议,但这些似乎是"无证件"的,所以我对此并不满意.
有什么建议?
我正在使用Visual Studio中的Office JavaScript API开发任务窗格Office加载项.当您运行该应用程序时,它将在桌面客户端版本的Office中运行.
Office Store要求说明
您的Office加载项必须完全适用于Office 2013和Office Online支持的操作系统,浏览器和设备.
所以我也需要在Office在线版本中进行测试.
问题是我无法找到一种方法来加载Word/Excel/Powerpoint Online中的应用程序并测试它,我也没有一个SharePoint设置,我可以发布应用程序测试它,然后将其提交给应用程序商店.
任何帮助都感激不尽.
最近,Microsoft推出了Office加载项体系结构,该体系结构允许开发远程托管的加载项,并在办公室内的IFrame中运行.我已经阅读了很多,试图了解这个架构是否可以替代VSTO,还是它们有单独的用例.VS 2015有两个模板.
在我的具体情况下,我想开发一个加载项,使用自定义导入功能扩展Excel 2016(例如自定义CSV,TSV,甚至XLSX).我不知道我应该选择哪种类型的项目.
我想在加载项的任务窗格中插入一个超链接,并且我希望此链接support.html在默认浏览器中打开页面。
<a href="https://example.com/support.html" target="_blank">Support</a>
Run Code Online (Sandbox Code Playgroud)
但是,上面的代码会support.html在任务窗格内打开页面。用户可能不知道如何返回加载项的主页。
有谁知道如何在用户的默认浏览器中打开页面?(顺便说一句,是否建议在加载项之外启动某些内容?如果没有,帮助页面的通用 UX 设计是什么?)
TL;博士
设置CustomProperties为具有与会者的约会时,只有组织者的约会才能获得CustomProperties.属性不会传播到其他与会者的约会.
更长的版本
当我们与多个与会者创建约会然后以每个与会者身份登录时,我们注意到每个与会者ItemId都不同.因此,会议中的每个与会者似乎都会获得自己的约会副本.(真的希望有人确认这是真的).
但是,从我们的加载项设置自定义属性(使用Outlook JavaScript API)时,只有组织者的约会才能获得自定义属性,因为当我们以任何其他与会者身份登录时,我们无法看到自定义属性.
我们的代码中的代码片段是相关的:
Office.initialize = function (reason) {
$(document).ready(function () {
Office.context.mailbox.item.loadCustomPropertiesAsync (onCustomPropertiesLoaded);
});
};
function onCustomPropertiesLoaded(asyncResults) {
_customProps = asyncResults.value;
}
//Set custom properties
_customProps.set("myProp", "true");
_customProps.saveAsync(customPropertiesOnSaved);
Run Code Online (Sandbox Code Playgroud)
有没有办法让每个约会副本都有自定义属性?
ms-office office-addins exchangewebservices outlook-addin office-js
我们的一位客户在尝试激活他们创建的应用程序时遇到问题。
该应用程序是免费发布的。
位置: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
更新#2:
我创建了OfficeDev/office-js#124和OfficeDev/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.
我想针对:
我需要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) 我问了一个关于 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等自定义函数提交加载项?
office-js ×10
ms-office ×6
office365 ×3
excel ×2
ios ×1
office-store ×1
scriptlab ×1
vsto ×1
word-addins ×1