Header 未在 Google Apps 脚本中清除
Header not clearing in Google Apps script
我正在制作一个文档模板,用于在 header 中输出文档的名称。由于某种原因,它输出了两次文档名称。
我遇到的问题很奇怪,我会尽力描述它。当我 运行 我的代码在一个空白文档上时它工作正常,但是当我再次 运行 它在同一个文档上更新它时,名称出现两次,就像图片中一样,其他任何人都会发生同样的情况在那之后的时间,甚至是页面上以两个名字开头的内容。这仅在我 open/refresh 文档时发生,但在我 运行 脚本编辑器中的 onOpen 函数时不会发生。
function onOpen(){
var doc = DocumentApp.getActiveDocument();
var name = doc.getName();
var header= doc.getHeader() || doc.addHeader();
var footer = doc.getFooter() || doc.addFooter();
//Clear Header
try {
header.clear();
} catch (e) {
// case last element in header is partial and can't be cleared
header.appendParagraph(" ");
header.clear();
}
//Clear Footer
try {
footer.clear();
} catch (e) {
// case last element in footer is partial and can't be cleared
footer.appendParagraph(" ");
footer.clear();
}
//create style for header
var headStyle = {};
headStyle[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.LEFT;
headStyle[DocumentApp.Attribute.FONT_FAMILY] = 'Georga';
headStyle[DocumentApp.Attribute.FONT_SIZE] = 14;
headStyle[DocumentApp.Attribute.VERTICAL_ALIGNMENT] = DocumentApp.VerticalAlignment.CENTER;
//output header
var headerPar = header.appendParagraph(name + " ");
//set style to header
headerPar.setAttributes(headStyle);
}
感谢您的帮助!
嗯 - 我只是 运行 你的代码,它运行良好,只返回 1 header。
在我 运行 它之前,我认为问题是你调用了 .appendParagraph() 两次 - 在定义上,也在 setAttributes() 上。
您可以尝试以下两种编辑方式之一:
//output header & set style to header
var headerPar = header.appendParagraph(name + " ").setAttributes(headStyle);
或
//output header
var headerPar = header.appendParagraph(name + " ");
//set style to header
header.setAttributes(headStyle);
我正在制作一个文档模板,用于在 header 中输出文档的名称。由于某种原因,它输出了两次文档名称。 我遇到的问题很奇怪,我会尽力描述它。当我 运行 我的代码在一个空白文档上时它工作正常,但是当我再次 运行 它在同一个文档上更新它时,名称出现两次,就像图片中一样,其他任何人都会发生同样的情况在那之后的时间,甚至是页面上以两个名字开头的内容。这仅在我 open/refresh 文档时发生,但在我 运行 脚本编辑器中的 onOpen 函数时不会发生。
function onOpen(){
var doc = DocumentApp.getActiveDocument();
var name = doc.getName();
var header= doc.getHeader() || doc.addHeader();
var footer = doc.getFooter() || doc.addFooter();
//Clear Header
try {
header.clear();
} catch (e) {
// case last element in header is partial and can't be cleared
header.appendParagraph(" ");
header.clear();
}
//Clear Footer
try {
footer.clear();
} catch (e) {
// case last element in footer is partial and can't be cleared
footer.appendParagraph(" ");
footer.clear();
}
//create style for header
var headStyle = {};
headStyle[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.LEFT;
headStyle[DocumentApp.Attribute.FONT_FAMILY] = 'Georga';
headStyle[DocumentApp.Attribute.FONT_SIZE] = 14;
headStyle[DocumentApp.Attribute.VERTICAL_ALIGNMENT] = DocumentApp.VerticalAlignment.CENTER;
//output header
var headerPar = header.appendParagraph(name + " ");
//set style to header
headerPar.setAttributes(headStyle);
}
感谢您的帮助!
嗯 - 我只是 运行 你的代码,它运行良好,只返回 1 header。
在我 运行 它之前,我认为问题是你调用了 .appendParagraph() 两次 - 在定义上,也在 setAttributes() 上。
您可以尝试以下两种编辑方式之一:
//output header & set style to header
var headerPar = header.appendParagraph(name + " ").setAttributes(headStyle);
或
//output header
var headerPar = header.appendParagraph(name + " ");
//set style to header
header.setAttributes(headStyle);