gpt4 book ai didi

google-apps-script - 为什么 Google 应用程序脚本仅在脚本执行结束后才将分页符和数据插入表中?

转载 作者:行者123 更新时间:2023-12-04 10:56:15 25 4
gpt4 key购买 nike

我正在 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。
任何人都可以解释为什么行、分页符和第二个表似乎被缓存并且只在执行结束后添加到文档中?
任何帮助将不胜感激,谢谢。

最佳答案

在你的情况下,我认为将以下脚本放在fillSampling函数的最后一行将解决您的问题。

doc.saveAndClose();

引用:
  • saveAndClose()
  • 关于google-apps-script - 为什么 Google 应用程序脚本仅在脚本执行结束后才将分页符和数据插入表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59166669/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com