试图找到一种方法来删除一个文件我写这个剧本,没有工作得很好空白页:
function remove_blank() {
var Doc = DocumentApp.openById('1ffmPF1iff1ORSPo4XLGyjQGrqVdXx2Py_zza6N_hV3g');
var dd = 1;
var tt='';
var body = Doc.getActiveSection();
while(body.getNumChildren()>dd){
try{
Logger.log(body.getNumChildren()+' '+dd)
var element = Doc.getChild(dd);
var type = element.getType();
if( type == DocumentApp.ElementType.TABLE){++dd}
if( type == DocumentApp.ElementType.PARAGRAPH ){
tt=element.getText();
if(tt!=' * '){element.removeFromParent();++dd}
编辑:这条线必须改变这样的:if(!TT = '*'){element.removeFromParent()}否则{++ DD}
(移除元素时不增加DD,这样做对有效替代款)
}
}
catch(err)
{
break
}
}
}
但是我还是一个问题,我不明白:当我在具有空段落和/或pagebreaks去除一切都很好一个文档运行功能。 如果我在同一个文档再次运行(即只有段/表/段落......)最后,在EN无限循环和日志显示VAR dd
不= 2后不再增加。 如何发生的,因为dd
是在while循环的每个表会增加吗? 下面是一个日志的初始文档的内容,并且,后右,将“处理”文档的。 (说实话,我必须说,这种情况很可能永远也不会发生,因为被调用的函数只是一个进程内的一次,但我很乐意了解;-)
0 : PARAGRAPH
1 : PARAGRAPH
2 : TABLE
3 : PARAGRAPH
4 : PARAGRAPH
5 : PARAGRAPH
6 : TABLE
7 : PARAGRAPH
8 : PARAGRAPH
9 : PARAGRAPH
10 : TABLE
11 : PARAGRAPH
12 : PARAGRAPH
13 : PARAGRAPH
14 : TABLE
15 : PARAGRAPH
0 : PARAGRAPH
1 : TABLE
2 : PARAGRAPH
3 : TABLE
4 : PARAGRAPH
5 : TABLE
6 : PARAGRAPH
7 : TABLE
8 : PARAGRAPH