2014-09-04 101 views
1

我正在尝试编写一个脚本,它将从Google工作表中将费用列表附加到Google文档模板中已有的表格中。目前,我有这样的(它说名字的原因是因为我有名字的虚拟数据和年龄测试):Google Apps脚本 - 将数据从电子表格添加到文档模板中的表格

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

回答

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]); 
    } 
} 
... 
+0

辉煌这项工作的完美三江源! – 2014-09-05 07:40:52

相关问题