appendRow不将数据放入Google电子表格

时间:2015-12-15 18:42:38

标签: google-apps-script google-sheets

我在这里做错了什么?它只是创建新文件,但新电子表格中没有任何内容。

function summarize_projects() {
  var sheet = SpreadsheetApp
               .openByUrl(theURL).getActiveSheet();

  var rows = sheet.getDataRange(); 
  var numRows = rows.getNumRows(); 
  var values = rows.getValues();
  //var sheet1 = sheet.getRangeByName('GUILLERMO');
  //var sheet2 = sheet.getRangeByName('GLORIA');
  //var sheet3 = sheet.getRangeByName('PV');
  var ssNew = SpreadsheetApp.create("BDATA1");
  Logger.log(rows.getValues);

  var ssNew1 = SpreadsheetApp.create("BDATA2");

  ssNew1.appendRow(values);
  Logger.log(rows.getValue());
  var ssNew2 = SpreadsheetApp.create("BDATA3");

  ssNew2.insertSheet('BDATA3', 'yassir');
  Logger.log(rows.getValue());

1 个答案:

答案 0 :(得分:1)

方法getValues()获取二维数据数组。 appendRow()方法不能采用二维数组。在这种情况下,您无法使用appendRow()方法。您获得了多行数据,appendRow()

您必须使用此代码:

ssNew1.getRange(1,1,values.length, values[0].length).setValues(values);

上面的代码从第一行和第一列开始。如果你不想那样。如果要在最后插入数据。您需要使用:

ssNew1.getRange(ssNew1.getLastRow() + 1,1,values.length, values[0].length).setValues(values);

但由于这是一个全新的电子表格,因此表格中不应该有任何内容。

getRange()特定版本的语法为:

getRange(Starting Row, Starting Column, Number of Rows to Write, Number of Columns to Write)