当范围内有两个超链接时,office.js range.load('text') 不会 return 所有文本
office.js range.load('text') doesn't return all text when there are two many hyperlinks in range
function getBodyText() {
return Word.run(async context => {
const range = context.document.body;
range.load('text')
await context.sync();
console.log(range.text);
});
}
但是当范围内有很多超链接时,range.text只包含范围内的部分文本。
这里是下载 docx 文件的链接,可以重现此错误和执行结果:
https://drive.google.com/file/d/13qHZg4hGWxfydq_FbKBeAZoEM5u_k1VL/view?usp=sharing
https://drive.google.com/file/d/1bpQh8ArBh_D1w2ZNqZ6Sc-LjTLnl6uRC/view?usp=sharing
不建议您从 document.body
对象中获取整个文本。有一个限制,因此如果正文文本的数量超过限制,您可能无法检索整个文本。相反,您可以通过遍历 paragraphs
集合来实现相同的目标。
await Word.run(async (context) => {
const body = context.document.body;
var paragraph = body.paragraphs.getFirstOrNullObject();
paragraph.load("text");
await context.sync();
while (!paragraph.isNullObject) {
console.log(paragraph.text);
paragraph = paragraph.getNextOrNullObject();
paragraph.load("text");
await context.sync();
}
});
这里是 link 要点,您可以通过 ScriptLab 导入。
function getBodyText() {
return Word.run(async context => {
const range = context.document.body;
range.load('text')
await context.sync();
console.log(range.text);
});
}
但是当范围内有很多超链接时,range.text只包含范围内的部分文本。
这里是下载 docx 文件的链接,可以重现此错误和执行结果: https://drive.google.com/file/d/13qHZg4hGWxfydq_FbKBeAZoEM5u_k1VL/view?usp=sharing https://drive.google.com/file/d/1bpQh8ArBh_D1w2ZNqZ6Sc-LjTLnl6uRC/view?usp=sharing
不建议您从 document.body
对象中获取整个文本。有一个限制,因此如果正文文本的数量超过限制,您可能无法检索整个文本。相反,您可以通过遍历 paragraphs
集合来实现相同的目标。
await Word.run(async (context) => {
const body = context.document.body;
var paragraph = body.paragraphs.getFirstOrNullObject();
paragraph.load("text");
await context.sync();
while (!paragraph.isNullObject) {
console.log(paragraph.text);
paragraph = paragraph.getNextOrNullObject();
paragraph.load("text");
await context.sync();
}
});
这里是 link 要点,您可以通过 ScriptLab 导入。