Как создать диаграмму из данных, которые извлекаются из электронной таблицы - PullRequest
0 голосов
/ 13 июня 2019

У меня есть ряд данных из электронной таблицы, которые будут отправляться на электронную почту каждую неделю один раз.Как я могу сгенерировать диаграмму из данных?

Я успешно извлек данные из электронной таблицы и отправил данные по электронной почте.Я не уверен, как создать диаграмму с извлеченными данными.

function CheckSales(){

  var app = SpreadsheetApp;
  var activeSheet = app.getActiveSpreadsheet().getSheets();
  //var data=activeSheet.getDataRange().getValues();

  //loop through sheets to look for value
  for (var i in activeSheet) {

  SpreadsheetApp.setActiveSheet(activeSheet[i])
  var sheet = app.getActiveSheet();
  var data = activeSheet[i].getDataRange().getValues();

  var emailAddress=SpreadsheetApp.getActiveSpreadsheet()
  .getSheetByName("Sheet1").getRange("B2").getValue();
  var resultArr=[];

  //To Loop through the whole data Rows
  for(var i=1;i<data.length;i++)
  {
    //Takes columns from L to S (To loop through the Columns)
    for(var j=11;j<19;j++)
    {
      var cellVal=data[i][j];
      Logger.log(cellVal)
      if(cellVal>0)
      {
        //Stores the Part No, Month Header Value of the Column, Cell Value 
which is greater then 0
        resultArr.push([data[i][0],data[0][j],cellVal])
      }
    }
  }
  if(resultArr.length>0)
  {
    var subject = 'Range exceeded Alert' + "" + sheet.getName();

    //Creates a body through the obtained values
    var body='';
    for(var m=0;m<resultArr.length;m++)
    {
      body+="For Part No "+resultArr[m][0].toString()+" and Month 
"+resultArr[m][1]
      .toString()+", Value is "+resultArr[m][2].toString()+"<br>";
    }

    MailApp.sendEmail({to:emailAddress,subject:subject,htmlBody:body});
  }

 }

}

Теперь у меня есть два листа с данными, которые будут отправлять электронную почту дважды с номером детали месяц и значением.Я ожидаю, что эти данные сгенерируют график

1 Ответ

0 голосов
/ 14 июня 2019

Я получил решение.Ниже приведен код

  if (sheet.getCharts().length > 0){
  var chart = sheet.getCharts()[0];
  chart = chart.modify()
  .removeRange(chart.getRanges()[0])
  .addRange(sheet.getRange('L1:S22'))
  .build();
  sheet.updateChart(chart);
  }

  else{
  var sheet = SpreadsheetApp.getActiveSheet();
  var chart = sheet.newChart()
  .setPosition(5, 6, 5, 5)
  .setChartType(Charts.ChartType.BAR)
  .addRange(sheet.getRange('L1:S22'))
  .build();
  sheet.insertChart(chart);
  }
  var charts = SpreadsheetApp.getActiveSheet().getCharts();



 MailApp.sendEmail({to:emailAddress,subject:subject,htmlBody:body,attachments: 
 charts});
...