我正在尝试使用Office.js在文档正文中插入一个表但无济于事。
我使用了以下代码:
function insertSampleTable() {
showNotification("Insert Table", "Inserting table...")
Word.run(function (context) {
// Create a proxy object for the document body.
var body = context.document.body;
body.insertTable(2, 2, Word.InsertLocation.end, ["a"]);
// Synchronize the document state by executing the queued commands, and return a promise to indicate task completion.
return context.sync();
})
.catch(errorHandler);
}
但是点击按钮后,它会给我以下错误:
Error: TypeError: Object doesn't support property or method 'insertTable'
任何帮助将不胜感激。我曾尝试检查Microsoft Office Dev网站,但他们没有像这样的任何示例。
谢谢!
答案 0 :(得分:1)
您可以在任何Range / Body / Paragraph对象上使用insertHTML method来完成此任务。这是代码:
Word.run(function (context) {
context.document.body.insertHtml(
"<table><tr><td>a</td><td>b</td></tr><tr><td>1</td><td>2</td></tr></table>",
Word.InsertLocation.end
);
return context.sync().then(function(){});
}).catch(function(error){});
-Michael Saunders(办公室加载项的PM)
答案 1 :(得分:1)
也许迈克尔并不知道这一点,但我们最近发布了(现在的GA)一个可以在单词中使用的表对象。并且为您提供了比插入HTML更多的功能。
以下是表对象的文档: https://docs.microsoft.com/en-us/javascript/api/word/word.table?view=office-js
btw您的代码有错误。期望的参数是2D数组。所以你需要提供这样的东西:
Word.run(function (context) {
// Create a proxy object for the document body.
var body = context.document.body;
body.insertTable(2, 2, Word.InsertLocation.end, [["a","b"], ["c","d"]]);
// Synchronize the document state by executing the queued commands, and return a promise to indicate task completion.
return context.sync();
}).catch(function (e) {
console.log(e.message);
})
&#13;
希望这会有所帮助!!!
谢谢! Juan(Word JavaScript API的PM)