我正在Google文档中运行GAS,以用G'Sheets中的一系列数据填写表格。当数据的长度超过第一页所能容纳的长度时,我将在第一张表末尾的段落中插入一个分页符。其余数据将插入第二页的第二个表中。一切正常,但是仅在脚本完成执行后,才将行和分页符添加到文档中。这给我带来了一个问题,因为我想在执行过程中将.gdoc转换为.docx,并且行不会转换为.docx,因为直到脚本结束它们才在.gdoc中。
function fillSampling(fileID, data) {
var doc = DocumentApp.openById(fileID);
var body = doc.getBody();
var cellStyle = {};
cellStyle[DocumentApp.Attribute.HORIZONTAL_ALIGNMENT] = DocumentApp.HorizontalAlignment.CENTER;
cellStyle[DocumentApp.Attribute.FONT_SIZE] = 8;
cellStyle[DocumentApp.Attribute.BOLD] = false;
var boldStyle = {};
boldStyle[DocumentApp.Attribute.BOLD] = true;
var table = body.getTables()[1];
var tableHeader = table.copy();
var r = 0;
while(data[r]) {
if(r==10) {
body.insertPageBreak(body.getNumChildren()-1);
table = body.appendTable(tableHeader);
}
var tableRow = table.appendTableRow();
var c = 0;
while(data[r][c]) {
var cell = tableRow.appendTableCell(data[r][c]).setPaddingBottom(0).setPaddingTop(0);
cell.getChild(0).asParagraph().setAttributes(cellStyle);
if(c==0) cell.setAttributes(boldStyle);
c++;
}
r++;
}
}
这是填写第一张和下表的功能。然后,另一个调用此函数的函数将文档从.gdoc转换为.docx。谁能解释为什么行,分页符和第二张表似乎被缓存并且仅在执行结束后才添加到文档中?任何帮助将不胜感激,谢谢。