javascript - 在 Excel Online 中加载自定义属性

标签 javascript excel office365 office-js office-addins

我想尝试为 Office API for JavaScript 执行此函数:

public loadCustomProperties() {
    Excel.run(async (ctx) => {
        let custom = ctx.workbook.properties.custom;    
        custom.load();
        return ctx.sync();
    })
}

但是我收到了一个错误错误错误:未捕获( promise 中):GeneralException:发生内部错误...(没有具体内容)

当我尝试加载 properties 而不是 properties.custom 时,一切正常。

请帮忙:)

编辑:
这是我得到的错误:

ERROR Error: Uncaught (in promise): GeneralException: An internal error occurred while processing the request. RichApi.Error: An internal error occurred while processing the request. at new r (excel-web-16.00.js:21) at t.c.processRequestExecutorResponseMessage (excel-web-16.00.js:21) at excel-web-16.00.js:21 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388) at Object.onInvoke (core.js:3760) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138) at zone.js:872 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) at Object.onInvokeTask (core.js:3751) at new r (excel-web-16.00.js:21) at t.c.processRequestExecutorResponseMessage (excel-web-16.00.js:21) at excel-web-16.00.js:21 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388) at Object.onInvoke (core.js:3760) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138) at zone.js:872 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) at Object.onInvokeTask (core.js:3751) at resolvePromise (zone.js:814) at zone.js:724 at rejected (main.js:103) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388) at Object.onInvoke (core.js:3760) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138) at zone.js:872 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) at Object.onInvokeTask (core.js:3751)

编辑2:

我发现这是一个已知的错误:https://github.com/OfficeDev/office-js/issues/179

最佳答案

修改了代码,进行了 3 处更改。

  1. 第一行缺少异步
  2. 缺少“功能”
  3. 最后,正如 shanks 提到的,您缺少 context.sync() 上的等待

我添加了一个 console.log 只是为了验证属性是否已加载。

async function loadCustomProperties() {
   await Excel.run(async (ctx) => {
        let custom = ctx.workbook.properties.custom;
        custom.load();
        await ctx.sync();
        console.log(custom);
    })
}

关于javascript - 在 Excel Online 中加载自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51307813/

相关文章:

javascript - 如何从网页获取 JSON 对象数组并将每个元素添加到 HTML 中的行?

javascript - 下面的js代码有什么区别?

javascript - 使用 office.js 在 Excel 中获取单个单元格格式?

vba - 当我使用 AutoFilter 的 SpecialCells 获取 VBA 中的可见单元格时出错

c# - 使用 Office 365 API 在邮箱之间移动邮件

javascript - 如何使用 Javascript 对对象进行深度过滤

javascript - 如何在谷歌地图上平移?

Excel 中的 XML 命名空间

Excel - 从列表中搜索字符串,区分大小写和通配符

ios - 通过 REST 响应 Office 365 事件邀请