Google apps script 将所选行复制到演示文稿

Google apps script 将所选行复制到演示文稿,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我的目标是从电子表格中复制一行,并使用标记将行数据合并到一个文档(理想情况下是一个谷歌演示文稿),该文档保存为PDF格式,我可以打印 我已经知道了如何将所选行复制到对象中,但我一辈子都不知道如何将该文本复制到任何类型的临时文档中。我有一个带有标记的演示模板,可以使用了 下面是我一直在使用的一些脚本 function printRepairs() { var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataR

我的目标是从电子表格中复制一行,并使用标记将行数据合并到一个文档(理想情况下是一个谷歌演示文稿),该文档保存为PDF格式,我可以打印

我已经知道了如何将所选行复制到对象中,但我一辈子都不知道如何将该文本复制到任何类型的临时文档中。我有一个带有标记的演示模板,可以使用了

下面是我一直在使用的一些脚本

function printRepairs() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var row = sheet.getActiveSelection();

  //prints a comma delim string of a single row
  var row1 = data[1]
  Logger.log("row #1: " + row1);
  var selectedRow = SpreadsheetApp.getActiveRange().getValues();

  // creates a file with selected row --doesn't work.
  Browser.msgBox("the row you selected contains: " +selectedRow);  
  DocsList.createFile('temp_row', selectedRow);
  copyblob(selectedRow);

  var folder = DocsList.getFolder('temp');
  folder.createFile('temp_row', 'hello', 'application/vnd.google-apps.document');

  doc = DocumentApp.create("sheet_test");
  DocumentApp.openById("sheet_test");
  text.insertText("sheet_test", selectedRow);

  Browser.msgBox("the row you selected contains: " +selectedRow);
  Logger.log("the row you selected contains: " + selectedRow);  
}

您正在执行的操作通常称为“邮件合并”。有一些谷歌文档加载项可以为你做这件事-从谷歌文档转到“加载项>获取加载项”并搜索“合并”

要从您自己的脚本中执行同样的操作,我建议您首先熟悉中的材料。您将从文档模板创建新文档,而不是从电子表格中的模板生成电子邮件

  • 创建一个google文档模板,带有与电子表格中的列标题匹配的标记

    我有一个带有标记的演示模板,可以使用了

    不幸的是,目前还没有对演示文稿的支持。明星(也许你的投票最终会成功!)

  • 对于电子表格中的每一行

  • 创建模板文档的副本。您应该为每个文件使用一个唯一的名称,但如果不这样做,您将在驱动器上得到多个同名文件
  • 使用新文件的
    fileId
    ,并将其作为文档打开
  • 使用类似于或的技术,在文档中搜索标记,并替换为电子表格中的数据