Office.js - 在内容控件中插入 table 行会导致错误

Office.js - Inserting table rows in a content control results in errors

当我手动(或通过 office.js 代码)将行插入内容控件中的 table 时,它会增加 contentControls 集合中内容控件的数量。 Word 2016 Windows 版本 1611.

例如,如果我在 1 个内容控件中有 1 个 table,最初 contentControls.items.length = 1。如果我插入 3 行,则 contentControls.items.length = 4。

        Word.run(function (context) {
            var contentCntrls = context.document.contentControls;
            context.load(contentCntrls, "tag");
            return context.sync().then(function () {
                app.showNotification("contentCntrls.items.length: " + contentCntrls.items.length, "");
            });
        })

这会在使用 contentControls 集合并最终使用 freezes/crashes Word 的后续代码中产生错误 ("Internal Error")。

测试版和版本 1 office.js 代码都会出现此行为。 该问题出现在 Windows 上,但在 Mac 上运行正常。

如果我通过 VBA 检查,内容控件的数量不会改变: Debug.Print ActiveDocument.ContentControls.Count

如果用户保存更改(在插入行之后),则不会出现该问题。

这是一个错误还是我做错了什么?是否有一些解决方法(可能重置 CC 集合)?

更新:问题已解决。 (编号:1461591)


更新:我们发现了一个错误。当文档存储在 OneDrive 中时发生。我们正在修复它。

----------------留下原答案供参考--------------------

我试图重现这个问题,但我做不到。我尝试了 2 种不同的路径来测试场景:

  1. 插入了一个 table,选择了整个 table 并手动插入了一个内容控件。

  2. 插入了一个内容控件,添加了几个段落然后在里面添加了一个table。

向 1 和 2 table 添加行后,我没有看到 item.length 如您所描述的那样增加,它停留在 1 内容控制。

Windows 也没有构建 1611 这样的东西。您能否提供更多详细信息:

  1. 如何插入 table 和内容控件
  2. 验证内部版本号。我在最新的公开可用版本 16.7766.2068 中尝试过它,请确保在测试前更新您的客户端。

谢谢!