google-apps-script - Google Apps Script - 将电子表格中的数据附加到文档模板中的表格

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

我正在尝试编写一个脚本,该脚本将从 google 表格中获取费用列表,并将它们附加到 google docs 模板中已经存在的表格中。目前我有这个(它说名字的原因是因为我正在用名字和年龄的虚拟数据进行测试):

function myFunction() {

  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet()

 var numRows = sheet.getLastRow()
 var numColumns = sheet.getLastColumn()

  var data = sheet.getRange(1, 1, numRows, numColumns).getValues()


var doc = DocumentApp.openById('13l6O8nmEZgJiZnzumWihsRVOZiq_8vUj6PtBtb9My_0')
var body = doc.getBody()
var tables = body.getTables()
var table = tables[1] 

  for (var i = 1; i < data.length; i++){
    var row = data[i]
    var name = row[0]
    var age = row[1]
    var state = row[2]
    var done = 'Done'
 //Check to see if line has already been processed or not
   if (!state){
     sheet.getRange(i + 1, 3).setValue(done)
     //Slices out the blank state value
     var slice = row.slice(0, numColumns-1)     
     table.appendTableRow(slice)
     }
   }
}

这只是向文档添​​加了一个新表,但我找不到向现有数据表添加行的方法我可以每行添加一个单独的单元格,但这没有用,似乎不能/不了解 appendtoRow 指令的工作原理。关于如何最好地做到这一点的任何想法?

最佳答案

要将一行添加到现有表中,您需要使用 appendTableRow()然后 将单元格添加到这个新添加的行。

更改脚本的最后一部分,如下所示(确保您的表确实是文档中的第二个表,因为您使用了 var table = tables[1] )

...
if (!state){
  sheet.getRange(i + 1, 3).setValue(done);
  //Slices out the blank state value
  var slice = row.slice(0, numColumns-1); 
  Logger.log(slice);
  var tableRow = table.appendTableRow();
  for(var n in slice){
    tableRow.appendTableCell(slice[n]);
  }
}
...

关于google-apps-script - Google Apps Script - 将电子表格中的数据附加到文档模板中的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25676491/

相关文章:

google-apps-script - 使用 Google 脚本打开包含数据的 HTML 文件

google-apps-script - 将 Google Drive 目录中的所有文件恢复为旧版本

java - 使用 google docs api (java) 创建 Google 文档

google-apps-script - DocumentApp 表 : How do I merge cells in a column? [w/workaround]

javascript - 如何在 Google Apps 脚本 Google 文档扩展中包含大型外部样式表和脚本

javascript - 谷歌表格脚本: How to autoupdate Google Sheet 'in new column'

javascript - Google-apps-script 日期比较。无法比较该月的第一天。获取月份()

google-apps-script - 有没有办法让两张纸保持同步?

regex - "GREATER THAN"的 SUMIF 数组公式

google-sheets - Google 电子表格 - 从下拉项填充行