谷歌文档合并编辑谷歌工作表

时间:2017-06-22 14:05:53

标签: google-apps-script

我在下面的代码中找到了一个代码,该代码使用列标题值作为替换Google文档中文本占位符的键,在google文档和google工作表中的数据之间进行合并。

// Set up the docs and the spreadsheet access

 var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(),
     copyId = copyFile.getId(),
     copyDoc = DocumentApp.openById(copyId),
     copyBody = copyDoc.getActiveSection(),
     activeSheet = SpreadsheetApp.getActiveSheet(),
     numberOfColumns = activeSheet.getLastColumn(),
     activeRowIndex = activeSheet.getActiveRange().getRowIndex(),
     activeRow = activeSheet.getRange(activeRowIndex, 1, 1, 
     numberOfColumns).getValues(),
     headerRow = activeSheet.getRange(1, 1, 1, numberOfColumns).getValues(),
     columnIndex = 0

// Replace the keys with the spreadsheet values

    for (;columnIndex < headerRow[0].length; columnIndex++) {

    copyBody.replaceText('%' + headerRow[0][columnIndex] + '%', 
                     activeRow[0][columnIndex]) 

目前,必须手动触发此代码,并根据光标选择的活动行的位置执行此功能。

或者,我想在编辑行中的特定单元格时触发该函数,并在引用同一行中的值时执行合并。我过去使用过以下代码,但不是在上面的上下文中。

function onEditcustom(e) {

   if(e.range.getColumn() == 1 && e.value == "APPROVED" && 
   e.range.getSheet().getName() == "Sheet 1"){

非常感谢任何帮助!

谢谢!

1 个答案:

答案 0 :(得分:0)

您想在Google表格中使用可安装触发器onEdit。您必须使用可安装版本才能访问DocumentApp服务。

您还应注意,onEdit只能用于工作表而不能用于文档。

https://developers.google.com/apps-script/guides/triggers/installable#google_apps_triggers