2015-12-15 3 views
2

Что я здесь делаю неправильно? Все, что он делает, это создать новый файл, но ничего не происходит в новых таблицах.appendRow не помещать данные в таблицу Google

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

Метод 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) 
+0

Он работал большое спасибо! – Yas91

Смежные вопросы