How to add data to a specific row in Google Sheets using Google Script

10,825

You can not use appendRow to do what you want. You are using:

target_sheet.appendRow(data);

You need to use setValues()

target_sheet(start row, start column, number of rows, number of columns).setValues(data);

In your case, if you want to overwrite (edit) an existing row, then you will need to find the row with the index in it, and use that number for the start row parameter.

var data, dataAs1D,dataFromCol1,ouss, target_sheet, lastRow,rowToEdit;

ss = SpreadsheetApp.getActiveSpreadsheet();
target_sheet = ss.getSheetByName('name');

lastRow = target_sheet.getLastRow();

dataFromCol1 = target_sheet.getRange(1,1,lastRow,1).getValues();//Get all col A values
dataAs1D = dataFromCol1.toString().split(",");//Convert 2D array to 1D

rowToEdit = colorRow;//

data = ['one','two','three'];
outerArray = [];//Assign empty array to variable name
outerArray.push(data);
target_sheet.getRange(rowToEdit,1,data[0].length,data.length).setValues(data);

This example assumes that your index numbers are in column one.

Share:
10,825
p0tta
Author by

p0tta

Mornings are for coffee and contemplation.

Updated on July 28, 2022

Comments

  • p0tta
    p0tta almost 2 years

    In my Google Sheet, I have the index in a variable called colorRow. And i'm just trying to add some data to that row in the sheet but the data keeps going to some other row down the page. What am I doing wrong?

    var data = [];
    // Some more fields in data array
    data.push("Final Submission Date: " + new Date());
    // target_sheet.insertRowAfter(colorRow); // Tried this didn't work
    target_sheet.appendRow(data);
    

    I need to figure out some way to either reset the append counter so that I can set it to row {colorRow} or if there is a way I can add to a specific row, maybe something like

    target_sheet.addAt(7, data)
    

    Something like this would be ideal.