由于 Excel 桌面中缺少 Document.getFileAsync,认证失败

Certification Failure because of missing Document.getFileAsync in Excel Desktop

我们有一个 Excel 365 加载项,它使用 Document.getFileAsync(因为这是访问完整电子表格的唯一方式,无需用户 select ).

此 API 在桌面 Excel 中不可用(2013 年和 2016 年都不可用)。

我们应该如何处理 MS 关于 Office Store 认证的投诉,该应用程序不是 运行 桌面 Excel?

是否足够包含

<Requirements>
 <Sets>
  <Set Name="File" />
 </Sets>
 <Methods>
  <Method Name="Document.getFileAsync" />
 </Methods>
</Requirements>

在清单中?

测试表明 Excel 忽略了这个选项(至少当清单来自本地文件夹时)。

或者我们是否应该实施第二条代码路径(具有不同的 UI),要求用户 select 完整的电子表格,以便我们可以通过 getDataAsync 将其导出到桌面Excel?

如果我们嵌入 Excel 桌面或 Excel 在线,如何找出?

您的清单中似乎有错字,应该是

<Method Name="Document.getFileAsync" />

而不是

<Method Name="Doument.getFileAsync" />

无论如何,我都鼓励您看一下 Worksheet.GetUsedRange,它允许您检索包含工作表所有数据的范围,如以下示例所示:

var ctx = new Excel.RequestContext();
var sheetUsedRange = ctx.workbook.worksheets.getActiveWorksheet().getUsedRange();
sheetUsedRange.load('values');
ctx.sync().then(function() {
    console.log(sheetUsedRange.values);
});

现在,要回答有关如何知道您是嵌入 Excel 桌面版还是 Excel 在线版的问题,我建议您查看 .

加布里埃尔·罗耶

Office 可扩展性团队的开发人员,MSFT