我刚刚收到了我提交的一个加载项的变更建议报告。它说Your add-in is not working in the Excel 2013 client on Windows 7 with Internet Explorer 11.
我一直在Excel 2016
和中测试我的加载项Excel Online
。因此,我刚刚安装了该Excel 2013
版本15.0.4841.1000
(包括SP1的version ),确实该加载项不起作用。但是似乎没有什么工作...
例如,下面的示例函数将haha
在电池A1
之下Excel Online
,反之,它没有任何东西Excel 2013
。
function test () {
Excel.run(function (ctx) {
var range = ctx.workbook.worksheets.getItem("Sheet1").getRange("A1");
range.values = [["haha"]];
return ctx.sync();
});
}
有人知道JavaScript API是否支持Excel 2013
吗?如果没有,很多专业人士将无法使用加载项,因为他们仍在使用Excel 2013
...
PS:我看到有很多的加载项在办公室商店需要Excel 2013 or later
或Excel 2013 Service Pack 1 or later
。如果JavaScript API不支持Excel 2013
,那么如何开发这些加载项(例如Stock Connector)?
编辑1:在清单XML中:
<?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:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="TaskPaneApp">
在我的中Home.html
,我有:
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
编辑2:我猜以下设置等效于该加载项不应该在中使用Excel 2013
?
<Hosts>
<Host Name="Workbook" />
</Hosts>
<Requirements>
<Sets>
<Set Name="ExcelApi" MinVersion="1.2"/>
</Sets>
</Requirements>
<DefaultSettings>
...
</DefaultSettings>
使用Office.js API时,您会看到每个方法都带有一个API集名称。例如:
这些API集对应于外接程序将使用的Office版本。需求集的列表及其支持的位置可以在http://dev.office.com/reference/add-ins/office-add-in-requirement-sets中找到。
任何新的Office 2016特定于主机的API集(ExcelApi,WordApi等)仅在Excel 2016+(以及Office Online和Mac / iOS等效版本)上受支持。API版本号(1.1
vs. 1.2
vs. 1.3
)对应于API的更新,这些更新是在Office 2016的RTM版本(出厂时提供1.1
)中添加的。那些具有Office 365订阅(家庭或企业)的客户可以使用这些更新。购买Office 2016磁盘/ MSI产品的客户将仅具有原始1.1
API。
您可以通过两种方式使用需求集。如果您的加载项100%取决于特定的API集,则应在清单文件中列出它。这样,对于不支持该特定API集的Office版本,该加载项甚至不会出现在“插入/管理加载项”对话框中。
另一方面,如果您仅使用集合中的几个API,并且可以不这样做(即使这会降低体验),则可以执行“点亮方案”。也就是说,你将列出可能的最低版本,您做的必要性,然后使用运行时检查,以检测特定的API集是否可用。
具体示例:假设您有一个Excel加载项,它可以创建一个新工作表并将数据输出到表中。这需要ExcelApi 1.1
版本或更高版本。理想情况下,您还希望能够设置列宽,但是range.format.columnWidth
仅在中可用ExcelApi 1.2
。您不想阻止客户使用旧版本的外接程序-毕竟,即使不是最佳状态,您的大部分功能仍可以使用-但您确实想使用新版本蜜蜂。在这种情况下,您应该ExcelApi 1.1
在清单中指定,然后在JavaScript中进行运行时检查,以确定是否可以运行range.format.columnWidth
代码。IE:
if (Office.context.requirements.isSetSupported("ExcelApi", 1.2 )
{
range.format.columnWidth = 25;
}
有关相关答案,请参阅获取环境的简洁方法(例如Office版本)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句