我在这里做错了什么?它只是创建新文件,但新电子表格中没有任何内容。
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());
答案 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)