0
votes

I'm trying to create headers in a sheet on a given row. I was able to do that by using individual insertions from the code below, but I know that's not the best method:

  sheet.getRange('A1').setValue("Date");
  sheet.getRange('B1').setValue("Impressions");
  sheet.getRange('C1').setValue("Clicks");
  sheet.getRange('D1').setValue("CTR%");
  sheet.getRange('E1').setValue("Cost");
  sheet.getRange('F1').setValue("Average CPC");
  sheet.getRange('G1').setValue("Conversions");
  sheet.getRange('H1').setValue("Conversion Rate");
  sheet.getRange('I1').setValue("Cost Per Conversion");

I then tried to create an array to insert all at once, like below, but it didn't work:

  var colHeaders = [
  ["Date", "Impressions", "Clicks", "CTR%", "Cost", "Average CPC", "Conversions", "Conversion Rate", "Cost Per Conversion"]
  ];

    sheet.getRange("A1:I1").setValue(colHeaders);
   // var sheet already defined earlier and working fine

I've tried this based on this Google docs that provided this example:

var values = [
   [ "2.000", "1,000,000", "$2.99" ]
 ];

 var range = sheet.getRange("B2:D2");
 range.setValues(values);

What Am I doing wrong?

1
You need to use setValues - Robin Gertenbach
Damn little detail. Right on target. Thanks Robin, it worked :D - SoMeGoD

1 Answers

2
votes

I encountered the same type of problem but i figured out I was using the wrong class.

Please take a look at which class you are using when you declare your "sheet".

My mistake was using:

var sheet = SpreadsheetApp.getActiveSpreadsheet();

Instead of:

var sheet = SpreadsheetApp.getActiveSheet();

I hope this helps you out.