我正在开发使用内容控件的Word加载项(Word API + Office.js),我试图读取内容控件中的表内容,需要删除空行样品:我在内容控件中有此表,我必须删除空白行
我尝试了下面的代码来读取表内容,但在读取表时出现未定义的错误
function checktable() {
Word.run(function (context) {
// Queue a command to get the current selection and then
// create a proxy range object with the results.
var contentControls = context.document.contentControls.getByTag('control').getFirst();
context.load(contentControls,'tables');
return context.sync()
.then(function () {
var table;
// Get the longest word from the selection.
if (contentControls.tables.items.length === 0) {
document.getElementById('lblstatus').innerText += "No Tables found";
}
else {
document.getElementById('lblstatus').innerText += " Tables found";
table = contentControls.tables.getFirstOrNullObject();
}
context.load(table, 'values');
})
.then(context.sync)
.then(function () {
var Tablevaules = table.values;
// Queue a command to highlight the search results.
document.getElementById('lblstatus').innerText += element + ":" + "Successs";
});
})
.catch(errorHandler);
}
[请让我知道是否有其他方法可以实现此功能,或者可以使用Office js
我想我在您的代码中看到了三个问题:
您正在调用contentControls
的var实际上是单个内容控件。 (第一个带有标签“ control”的标签。)复数名称令人困惑,并且使您的代码难以解析。
您的代码中的以下行有问题:
context.load(contentControls,'tables');
tables
属性是一个收集属性。您无法加载集合属性。您需要加载集合成员的一个或多个属性。也就是说,tables.items数组中的表。看来您需要加载length
属性,因为这是代码在同步后读取的属性。我推荐这本书Building Office Add-ins,尤其是Loading Collections部分以了解更多信息。
当使用*OrNullObject
方法时,需要调用context.sync
,然后测试该对象以查看其是否为空。参见orNullObject Methods。