在Word中插入表使用Javascript API

时间:2016-11-21 02:58:04

标签: ms-word ms-office office365 add-in office-js

我正在尝试使用Word加载项JavaScript API添加一个包含如下图像内容的表格 enter image description here

这是我的代码:

$('#addtbl').click(function () {
                Word.run(function (context) {
                    var tables = context.document.getSelection().tables;
                    tables.load();
                    return context.sync().then(function () {
                        tables.first.insertTable(2, 2, Word.InsertLocation.end);
                    }).then(context.sync);
                });
            });

它不会在我的文档中添加表格。如何添加包含内容的表格?

3 个答案:

答案 0 :(得分:1)

关于你的例子的一些评论:

  1. 您不需要加载表集合以在文档中插入表格。你只需要插入它。
  2. 您发送给方法的参数不正确。查看下面的示例,您缺少需要为要插入的数据提供二维数组的值,这是最后一个参数。查看我们的参考here
  3. 这是一个例子..我添加了几种可以插入的表,只需更改发送到insertTable方法的数组。

    
    
    forms = self.driver.find_elements_by_tag_name("form")
    for form in forms:
        self.driver.execute_script("""
            var form = arguments[0];
            form.style['border'] = 'solid'; 
            form.style['border-color'] = 'red';
        """, form)
    
    
    
    

答案 1 :(得分:0)

通过Word PM Juan Balmori在这里看一下这篇文章:

Office Add-in development: Insert table in Word 2016

表对象作为1.3 API的一部分添加到Office-JS规范中。检查开放规范:

http://github.com/OfficeDev/office-js-docs/tree/WordJs_1.3_Openspec

还要确保使用支持表API的构建。

答案 2 :(得分:0)

除了Maarten的评论之外,还有一些其他说明:

  • 您错过了.catch语句,导致错误被吞下。如果添加.catch
  • ,您可以更好地调试这个
  • 特别针对.first API,它可能已重命名为方法(getFirst())IIRC。但不确定哪个版本和/或JS版本组合将在这里工作。
  • 虽然它本身并不是一个错误,但你不需要在表集合上使用load语句,因为你没有主动回读表集合中的任何内容 - 相反,你正在检索一个品牌新表对象。