1

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

此 API 在 Desktop Excel 中不可用(2013 和 2016 都没有)。

我们应该如何处理关于 Office 商店认证的 MS 投诉,即应用程序未在 Desktop Excel 中运行?

是否足以包括

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

在清单中?

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

或者我们是否应该实现第二个代码路径(使用不同的 UI),这需要用户选择完整的电子表格,以便我们可以通过 getDataAsync for Desktop Excel 导出它?

如果我们嵌入在 Excel Desktop 或 Excel Online 中,如何查明?

4

1 回答 1

1

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

<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 Desktop 还是 Excel Online 的问题,我建议您查看Michael Zlatkovsky 对此事的回答

加布里埃尔·罗耶

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

于 2015-10-13T01:08:43.617 回答