我是 Office Web 加载项的新手(来自 VSTO),所以我可能不理解一些小而愚蠢的东西..
-- 编辑和简化 --
我正在尝试让以下示例代码正常工作:https://learn.microsoft.com/en-us/javascript/api/word/word.field?view=word-js-preview#word-word -字段更新结果成员(1)
测试场景:
创建Word文档
添加一些文字
插入“页数”字段
插入更多文字
选择字段
运行以下代码
export async function UpdateAllFields_Click(event: Office.AddinCommands.Event) {
await Word.run(async (context) => {
console.log("UpdateAllFields_Click");
let field = context.document.getSelection().fields.getFirstOrNullObject();
field.load(["code", "result", "type", "locked"]);
await context.sync();
if (field.isNullObject) {
console.log("No field in selection.");
} else {
console.log(
"Before updating:",
"Code of first field: " + field.code,
"Result of first field: " + JSON.stringify(field.result)
);
field.updateResult();
field.select();
await context.sync();
field.load(["code", "result"]);
await context.sync();
console.log(
"After updating:",
"Code of first field: " + field.code,
"Result of first field: " + JSON.stringify(field.result)
);
}
await context.sync();
}).catch(function (error) {
console.log("error: " + error);
if (error instanceof OfficeExtension.Error) {
console.log("Debug info: " + JSON.stringify(error.debugInfo));
}
});
event.completed();
}
任何人都可以解释为什么当 context.sync() 运行时 'field.updateResult()' 命令会导致异常。
代码='GeneralException' errorLocation ='Field.updateResult'
如果 SEQ 字段都是第一个字段的字面副本,那么它们将始终具有相同的值。第二个等字段必须使用
\n
选项来指示该值应该递增。像这样:
{SEQ 测试 * MERGEFORMAT}
{SEQ 测试 * 合并格式}
{SEQ 测试 * 合并格式}