javascriptgoogle-apps-scriptexceptionchartsgoogle-sheets-formula

Error when trying to use addRange in Embedded Line Chart Builder


I am posting it here after trying multiple solutions.

My Data in Gsheet looks like

enter image description here

I am trying to draw an line Chart my code is below

var c_data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("chart_data");
var curr_date = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy");
//Inserting New Sheet here
var new_ss = SpreadsheetApp.getActiveSpreadsheet().insertSheet('Numbers - ' + curr_date);
//Get data Range for chart here
var n_data = c_data.getRange("I2:J").getValues(); // I logged and checked here its a 2D array

var chart_d = new_ss.newChart().asLineChart().addRange(n_data)
  .setTitle("Help on the Error :(")
  .setXAxisTitle('Numbers')
  .setYAxisTitle('Months')
  .setPosition(5,5,0,0)
  .setOption('width', 700)
  .setOption('height', 200)
  .build();
 

I am getting the Error

Error
Exception: The parameters (number[]) don't match the method signature for SpreadsheetApp.EmbeddedLineChartBuilder.addRange.


Solution

  • The argument to addRange is a cell range. Not the cell value. I made two changes, including the format of the graph.

      var c_data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("chart_data");
      var curr_date = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy");
      //Inserting New Sheet here
      var new_ss = SpreadsheetApp.getActiveSpreadsheet().insertSheet('Numbers - ' + curr_date);
      //Get data Range for chart here
    //>>>>_1
      // var n_data = c_data.getRange("I2:J").getValues(); // I logged and checked here its a 2D array
      var n_data = c_data.getRange("I2:J"); // I logged and checked here its a 2D array
    //<<<<_1
      var chart_d = new_ss.newChart().asLineChart().addRange(n_data)
        .setTitle("Help on the Error :(")
    //>>>>_2
        // .setXAxisTitle('Numbers')
        // .setYAxisTitle('Months')
        .setXAxisTitle('Months')
        .setYAxisTitle('Numbers')
    //<<<<_2
        .setPosition(5, 5, 0, 0)
        .setOption('width', 700)
        .setOption('height', 200)
        .build();
    
      new_ss.insertChart(chart_d);