Word: 不能将 Text() 插入 Cell.body



Beta Library: https://appsforoffice.microsoft.com/lib/beta/hosted/office.js

Word 2016 Office inside, Version 1610 (Build 7416.1000)


我有一个Word文档,其中有一个简单的表(我正在使用生成几行和列的表,每次我测试,没有现有的数据),我正在迭代尝试用文本填充单元格的行。

当我尝试这个时,我得到这个错误:

Error: ItemNotFound: ItemNotFound
Debug info: {"errorLocation":"TableRowCollection.getItem"}

我的应用程序是由MS visual studio创建的演示WordWebAddin,我的代码看起来像这样:

Word.run(function (context) {
        var tables = context.document.body.tables
        tables.load({ expand:"rows/cells/items/body/text"})
        return context.sync().then(function () {
            var rows = tables.items[0].rows
            rows.items[1].cells.items[1].body.insertText("ryanasoefijasojef", Word.InsertLocation.replace)
            return context.sync();
        })
    })
    .catch(errorHandler);

我已经尝试了各种导航到单元格主体的机制-如果我使用cells.items[0].body.text,我成功地获得了单元格文本主体,所以我能够以我期望的方式使用单元格。但无论我怎么做,都会得到itemNotFound异常。我还尝试了各种值(或不是插入位置参数的值,包括(没有),对InsertLocation对象的引用,以及字符串"替换"等。我肯定有可能错误地使用了API,但我相信我是根据文档正确使用的。

编辑我希望得到任何形式的确认。要么是我做对了,要么是做错了,要么是这对你不起作用,或者别的什么。任何帮助都是感激的!

我建议您使用Table对象的getCell方法。此方法获取表中所需的特定单元格的从零开始的坐标,然后可以轻松访问单元格体。请查看下面的示例代码,还请注意,您不需要展开任何内容即可使此代码工作。

顺便说一句,你可能不得不切换回八月的分支(16.7369.XXX),因为在九月的分支中引入了一些突破性的变化,我们重命名了一些方法,我们的计划是在九月的分支发布后在预览CDN上更新Office.js。感谢使用预览版!

 Word.run(function (context) {
            var tables = context.document.body.tables
            tables.load()
            return context.sync().then(function () {
               tables.items[0].getCell(0, 0).body.insertText("ryanasoefijasojef", Word.InsertLocation.replace)
               return context.sync();
            })
        })
    .catch(function (e) {
                app.showNotification(e.message);
            })
       
    }

最新更新