gpt4 book ai didi

javascript - Microsoft office.js Excel 加载项 - 使用 javascript/react 检索工作表/工作簿唯一 ID

转载 作者:行者123 更新时间:2023-12-04 10:40:07 24 4
gpt4 key购买 nike

我们构建了一个 Excel 任务 Pane 插件,主要用于工作表。根据我们的要求,每当用户关闭 excel 并再次重新打开它时,我们希望使用唯一 ID 来识别 excel。

从工作簿加载 excel ID 的示例代码:

Office.initialize = () => {
Excel.run(function(context) {
var sheet = context.workbook.worksheets.getItem("Sheet1");
const worksheets = context.workbook.worksheets;
//tried to load ID property using below code
worksheets.load("id, name");
worksheets.load(["items/id", "items/name"]);
worksheets.load(["id", "name", "worksheet/id"]);
sheet.load(["items/id", "items/name"]);
context.sync();
//below is the code to print excel ID
console.log(sheet.id);
// OR
worksheets.items.forEach(ws => {
console.log(`id: ${ws.id}, name: ${ws.name}`)
});
}).catch(function(error) {
console.log(error.debugInfo);
});
}

我们收到以下错误:

Uncaught RichApi.Error: The property 'id' is not available. Before reading the property's value, call the load method on the containing object and call "context.sync()" on the associated request context.

最佳答案

.sync()方法是异步的,并返回一个需要等待的 promise 。

Therefore, the sync() API call in Office.js returns a promise First Paragraph



使用 promise 的解决方案:
  Office.initialize = () => {
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getItem("Sheet1");
sheet.load(["items/id", "items/name"]);
context.sync().then(() => {
console.log(sheet.id);
});
});
}).catch(function(error) {
console.log(error.debugInfo);
});
}

使用 async/await 的解决方案:
  Office.initialize = () => {
Excel.run(async function (context) {
var sheet = context.workbook.worksheets.getItem("Sheet1");
sheet.load(["items/id", "items/name"]);
await context.sync()
console.log(sheet.id);
});
}).catch(function(error) {
console.log(error.debugInfo);
});
}

关于javascript - Microsoft office.js Excel 加载项 - 使用 javascript/react 检索工作表/工作簿唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59968134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com