我制作了一些应用脚本来格式化Google文档中的文字,但是:
脚本效率不高。
// Set the whole body to Roboto 10
var FontStyle = {};
FontStyle[DocumentApp.Attribute.FONT_FAMILY] = 'Roboto';
FontStyle[DocumentApp.Attribute.FONT_SIZE] = 10;
body.setAttributes(FontStyle);
// Set some elements to bold
var BoldStyle = {};
BoldStyle[DocumentApp.Attribute.BOLD] = true;
var pattern1 = "Private & Confidential";
var found1 = body.findText(pattern1);
found1.getElement().setAttributes(BoldStyle)
var pattern2 = "Your Reference:";
var found2 = body.findText(pattern2);
found2.getElement().setAttributes(BoldStyle)
var pattern3 = "Our Reference:";
var found3 = body.findText(pattern3);
found3.getElement().setAttributes(BoldStyle)
// Set some elements to right align
var RightStyle = {};
RightStyle[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT ] =
DocumentApp.HorizontalAlignment.RIGHT;
var pattern4 = "\\[Date\\]";
var found4 = body.findText(pattern4);
found4.getElement().getParent().setAttributes(RightStyle);
有人可以帮忙吗?
P
答案 0 :(得分:1)
除了一个错误,正确的代码如下。错误是我仍然无法使日期正确对齐。有什么想法吗?
// Set the whole body to Roboto 10
var FontStyle = {};
FontStyle[DocumentApp.Attribute.FONT_FAMILY] = 'Roboto';
FontStyle[DocumentApp.Attribute.FONT_SIZE] = 10;
body.setAttributes(FontStyle);
// Set some elements to bold
var target1 = "Private & Confidential"
var searchResult1 = body.findText(target1);
if (searchResult1 !== null) {
var thisElement1 = searchResult1.getElement();
var thisElement1Text = thisElement1.asText();
thisElement1Text.setBold(searchResult1.getStartOffset(), searchResult1.getEndOffsetInclusive(), true);
}
var target2 = "Your Reference:"
var searchResult2 = body.findText(target2);
if (searchResult2 !== null) {
var thisElement2 = searchResult2.getElement();
var thisElement2Text = thisElement2.asText();
thisElement2Text.setBold(searchResult2.getStartOffset(), searchResult2.getEndOffsetInclusive(), true);
}
var target3 = "Our Reference:"
var searchResult3 = body.findText(target3);
if (searchResult3 !== null) {
var thisElement3 = searchResult3.getElement();
var thisElement3Text = thisElement3.asText();
thisElement3Text.setBold(searchResult3.getStartOffset(), searchResult3.getEndOffsetInclusive(), true);
}
// Right align date
var searchType = DocumentApp.ElementType.PARAGRAPH
var target4 = "\\[Date\\]";
var searchResult4 = body.findText(target4);
while (searchResult4 = body.findElement(searchType, searchResult4)) {
var par = searchResult4.getElement().asParagraph();
if (searchResult4 != null) {
par.setAlignment(DocumentApp.HorizontalAlignment.RIGHT);
}
}
// Update date
var date = Utilities.formatDate(new Date(), "GMT", "d MMMMM yyyy");
body.replaceText("\\[Date\\]", date);
}
答案 1 :(得分:0)
我假设您的脚本在找到模式时正在工作,并且仅在找不到模式时才会中断。 所以这是我建议的方式:
// Set the whole body to Roboto 10
var FontStyle = {};
FontStyle[DocumentApp.Attribute.FONT_FAMILY] = 'Roboto';
FontStyle[DocumentApp.Attribute.FONT_SIZE] = 10;
body.setAttributes(FontStyle);
// Set some elements to bold
var BoldStyle = {};
BoldStyle[DocumentApp.Attribute.BOLD] = true;
var pattern1 = "Private & Confidential";
var found1 = body.findText(pattern1);
if (found1 != null) {
found1.getElement().setAttributes(BoldStyle)
}
var pattern2 = "Your Reference:";
var found2 = body.findText(pattern2);
if (found2 != null) {
found2.getElement().setAttributes(BoldStyle)
}
var pattern3 = "Our Reference:";
var found3 = body.findText(pattern3);
if (found3 != null) {
found3.getElement().setAttributes(BoldStyle)
}
// Set some elements to right align
var RightStyle = {};
RightStyle[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] =
DocumentApp.HorizontalAlignment.RIGHT;
var pattern4 = "\\[Date\\]";
var found4 = body.findText(pattern4);
if (found4 != null) {
found4.getElement().getParent().setAttributes(RightStyle);
}
这是一个未经测试的代码,如果出现任何问题,请告诉我,我很乐意为您提供帮助。
感谢。