【问题标题】:Google Apps Script - Appending data from spreadsheet to table in document templateGoogle Apps 脚本 - 将电子表格中的数据附加到文档模板中的表格
【发布时间】:2014-09-04 23:28:15
【问题描述】:

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

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 指令是如何工作的。关于如何最好地做到这一点的任何想法?

【问题讨论】:

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


    【解决方案1】:

    要向现有表格添加一行,您需要使用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]);
      }
    }
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 2015-06-25
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多