将Google文档中的表格信息推送回链接的Google工作表

时间:2019-06-15 13:47:21

标签: google-apps-script google-sheets google-docs

是否可以通过已链接的Google文档更新Google表格?基本上,我有一个带有链接的Google表格的Google模板Google文档。我有一个脚本,可以在提交表单时复制google doc。然后将变量替换为适当的表单数据。

准备就绪后,我将使用个人信息更新Google表格并更新google文档。在我需要对较旧的google文档进行更改之前,此方法可以正常工作...但是由于我的google文档已链接到同一工作表,因此我必须从较旧的google doc重新输入google工作表中的信息,而不仅仅是编辑谷歌表。有没有一种方法可以将数据从Google文档推回Google工作表?

或者有没有一种方法可以使用应用程序脚本将表格从Google表格插入并链接到Google文档中?我发现将工作表链接到文档的唯一方法是使用复制和粘贴...

1 个答案:

答案 0 :(得分:0)

没有一个很好的答案。遗憾的是,文档api中未提供刷新功能。但是,您可以使用Apps脚本将工作表中的数据复制到文档中。它确实会丢失格式,因此您也必须重置格式,如下面的示例所示。

function copyDataFromSheetToDoc() {
  var sheet = SpreadsheetApp.openById('1R0a4aj1iJA8IxlgYRMjsM7DytPItQxy3be7W55mitr4');
  var data = sheet.getSheetByName('Sheet1').getRange("A1:C4").getValues();
  var doc = DocumentApp.openById('1pMWRr_QbRlObLeulM0DUHZRCc1K6RCch9FMLOM0sSN0');
  var body = doc.getBody();
  // Update the first table.
  var table = body.getTables()[0];

  var headerStyle = {};
  headerStyle[DocumentApp.Attribute.BOLD] = true;
  headerStyle[DocumentApp.Attribute.FONT_SIZE] = 10;
  var bodyStyle = {};

  for (var r = 0; r < data.length; ++r) {
    var row = data[r];
    for (var c = 0; c < row.length; ++c) {
      var cell = table.getCell(r, c);
      cell.setText(row[c]);
      if (r == 0) {
        cell.setAttributes(headerStyle);
      } else {
        cell.setAttributes(bodyStyle);
      }
    }
  }
  doc.saveAndClose();
}