Office js 如何检查空文档?
我需要检测文档是否为空,如果为空,则使用Word加载项向用户显示提示Office js 如何检查空文档?,office-js,Office Js,我需要检测文档是否为空,如果为空,则使用Word加载项向用户显示提示 有没有办法从OfficeJS Word加载项或通过API检测空文档?您应该能够获取文档的段落集合并使用该集合执行检查,类似以下内容: Word.run(function (context) { var paragraphs = context.document.body.paragraphs; context.load(paragraphs, 'text'); return context.sync(
有没有办法从OfficeJS Word加载项或通过API检测空文档?您应该能够获取文档的段落集合并使用该集合执行检查,类似以下内容:
Word.run(function (context) {
var paragraphs = context.document.body.paragraphs;
context.load(paragraphs, 'text');
return context.sync().then(function () {
if (paragraphs.items.length === 0) {
// Empty document!
}
});
});
这将适用于完全空白的文档。如果您希望更加严格,则需要对每个段落.items[]
对象的text
属性添加额外的检查
body.text.trim().length返回文档中的字符数。如果为空,则文档长度将为0,条件将计算为false,否则将执行部分。这没有考虑页眉和页脚文本,这就是我发布此问题以寻求更精简的解决方案的原因。您可以使用context.document.sections访问页眉/页脚,页眉/页脚是正文对象(并有自己的段落集合)。或者,您可以加载context.document.body,调用body.getOoxml(),并使用正则表达式查找任何现有段落(
),运行(
)和文本(
)标签。我相信这也可以解释页眉和页脚。我不确定您最初提出的解决方案中是否只缺少页眉/页脚。我如何才能真正确保文档确实是空的?使用document.getFileAsync(Office.FileType.Text,…)获得了一个近乎完美的解决方案
方法,该方法返回文档中的所有文本。对于空文档,该方法返回可替换为空字符串的\r\n
,因此空文档本质上表示将与最终文档文本匹配的空文本(替换\r\n
)我说近乎完美,因为它不考虑空表、图像或插入文档的对象。但是,由于水印/占位符文本,内容控制很好。
Word.run(function(context) {
var body = context.document.body;
body.load();
return context.sync().then(function() {
if(body.text.trim().length) {
//Document is not Empty. Add your code here you want to run in this case.
}
else
//Empty Document
});
});