我的问题与this question中描述的问题非常相似。但是,该问题的答案是针对select()
,而我需要针对body.getOoxml()
的解决方案。
我有这个简单的代码:
Word.run(function (context) {
var xml = context.document.body.getOoxml();
return context.sync().then(function () {
// do something
});
}).catch(errorHandlerDS);
...
function errorHandlerDS(error) {
console.log(JSON.stringify(error));
}
我的Word版本为16.0.4266.1001
,但出现此错误:
{
"name": "OfficeExtension.Error",
"code": "AccessDenied",
"message": "AccessDenied",
"traceMessages": [],
"debugInfo": {
"errorLocation": "Body.getOoxml"
},
"stack": "AccessDenied: AccessDenied\n at Anonymous function (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:150094)\n at yi (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:163912)\n at st (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:163999)\n at d (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:163819)\n at c (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:162405)"
}
在较新版本的Word中,此代码运行良好,并且不会引发任何异常。但是,我的客户不想更新他的Office版本。有没有办法使代码在该版本上工作?
答案 0 :(得分:0)
尝试一下。在较早的版本中,Word具有正确的加载顺序是很挑剔的。
const body = context.document.body;
await context.sync();
const xml = body.getOoxml();
await context.sync();
// do something
知道字词后可能会或可能不会起作用