我正在处理包含数百个空段落的Google文档。我想自动删除这些空行。
在LibreOffice Writer中,您可以使用Find&替换工具以替换^$
什么都没有,但这在Google文档中不起作用。
My search for ^$
or ^\s*$
returned 0 results even though there should be 3 matches
如何使用Google Apps脚本删除空白段落?
我已尝试过body.findText("^$");
,但会返回null
function removeBlankParagraphs(doc) {
var body = doc.getBody();
result = body.findText("^$");
}
答案 0 :(得分:4)
我认为必须有一个最后的空段,但这似乎有效。
function myFunction() {
var body = DocumentApp.getActiveDocument().getBody();
var paras = body.getParagraphs();
var i = 0;
for (var i = 0; i < paras.length; i++) {
if (paras[i].getText() === ""){
paras[i].removeFromParent()
}
}
}
答案 1 :(得分:2)
添加汤姆的回答和apmouse的评论,这是一个修订的解决方案:1)防止删除由图像或水平规则组成的段落; 2)还删除仅包含空格的段落。
function removeEmptyParagraphs() {
var pars = DocumentApp.getActiveDocument().getBody().getParagraphs();
// for each paragraph in the active document...
pars.forEach(function(e) {
// does the paragraph contain an image or a horizontal rule?
// (you may want to add other element types to this check)
no_img = e.findElement(DocumentApp.ElementType.INLINE_IMAGE) === null;
no_rul = e.findElement(DocumentApp.ElementType.HORIZONTAL_RULE) === null;
// proceed if it only has text
if (no_img && no_rul) {
// clean up paragraphs that only contain whitespace
e.replaceText("^\\s+$", "")
// remove blank paragraphs
if(e.getText() === "") {
e.removeFromParent();
}
}
})
}