我们可以传递哪些 .load() 常量?

What are the .load() constants we can pass?

一般来说 JavaScript 和 Office API 的新手。只是弄湿了我的脚。有很多东西要学。我看到传递给 load() 函数调用的不同字符串常量,如 "name" 或 "address"。这些是什么以及我们如何找到它们?它没有智能感知。

例如

getRange.load('address')

table.load("name")

TIA, 扎克·巴雷斯

之所以调用"load"方法是因为你打算在ctx.sync()之后访问它,对吧。例如,假设您有想要输出当前选择的地址的代码:

Excel.run(function(ctx) {
    var range = ctx.workbook.getSelectedRange();

    // <do some load on the range>

    return ctx.sync().then(function() {
        console.log(range.address);
    })
}).catch(function(e) {
    console.log(e);
})

因为您看到自己在做 range.address(并且您应该在 IntelliSense 中看到枚举),这意味着您知道那是您应该加载的 属性 名称。事实上,如果您忘记了,您将在尝试访问它时遇到失败,它应该告诉您 属性 尚未加载。

唯一需要注意的是集合:当您执行 tables.load("name") 时,您实际上是在告诉 table 的集合 "load all your child objects, pre-fetching the name"。因此,与其直接从 table 对象中寻找 IntelliSense,不如寻找访问子属性的方式(即 tables.items[0].___)

希望这对您有所帮助,

~ Michael Zlatkovsky,Office 可扩展性团队开发人员,MSFT