如何更新Word文档中的字段

问题描述 投票:0回答:1

我是 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'

office-js
1个回答
0
投票

如果 SEQ 字段都是第一个字段的字面副本,那么它们将始终具有相同的值。第二个等字段必须使用

\n
选项来指示该值应该递增。像这样:

{SEQ 测试 * MERGEFORMAT}

{SEQ 测试 * 合并格式}

{SEQ 测试 * 合并格式}

© www.soinside.com 2019 - 2024. All rights reserved.