Word:不能将InsertText()放入Cell.body

时间:2016-10-14 19:27:59

标签: office-js

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

Word 2016 Office Insider Fast,版本1610(Build 7416.1000)

我有一个Word文档,里面有一个简单的表格(我每次测试都会生成一个包含几行和几列的表格,没有现有数据),而且我还有一个表格。 m遍历试图用文本填充单元格的行。

尝试此操作时出现此错误:

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

我的应用程序是由MS visual studio创建的Demo 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​​,但我相信我根据文档正确使用它。

修改的 我会喜欢任何形式的确认。无论是我做对了还是做错了,或者说它不适合你,或者其他什么。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

我建议您使用getCell method of the Table object。此方法采用表中所需特定单元格的从零开始的坐标,然后您可以轻松访问单元体。查看下面的示例代码,同时请注意,您无需展开任何内容即可使此代码正常工作。

顺便说一句,你可能不得不切换回August Fork(16.7369.XXX),因为在9月份推出的Office.js中出现了重大变化,我们改名为几种方法,我们的计划是更新Office.js一旦9月叉子出货,在预览CDN上。感谢您使用预览!



 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);
            })
       
    }