Email 将变量设置为单元格内的文本

Email 将变量设置为单元格内的文本,email,google-apps-script,google-sheets,Email,Google Apps Script,Google Sheets,我从电子表格发送电子邮件。我希望B2的值成为电子邮件的主体。这样我就可以在B2单元格中键入我想在消息中说的内容。我已经设置了脚本来发送工作表中包含的图表和数据,这是可行的。但当我试图将邮件正文设置为单元格B2的值时,它只发送一条写有“范围”的消息,然后添加图表 到目前为止,我的代码是这样的 function emailParentsUpdates(sheet,emails,emailSubject){ var targetspreadsheet = SpreadsheetApp.getAct

我从电子表格发送电子邮件。我希望B2的值成为电子邮件的主体。这样我就可以在B2单元格中键入我想在消息中说的内容。我已经设置了脚本来发送工作表中包含的图表和数据,这是可行的。但当我试图将邮件正文设置为单元格B2的值时,它只发送一条写有“范围”的消息,然后添加图表

到目前为止,我的代码是这样的

function emailParentsUpdates(sheet,emails,emailSubject){
  var targetspreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = targetspreadsheet.getActiveSheet();  
  var emailSubject = 'Grades Update';
  var charts = sheet.getCharts();
  var startRow = 1;  // First row of data to process
  var numRows = 1;   // Number of rows to process
  var dataRange = sheet.getRange(startRow, 1, numRows, 1)
  var data = dataRange.getValues();
  for (i in data) {
    var row = data[i];
    var emailAddress = row[0];  // First column
    var teacherEmail = "efazekas@dcsdk12.org"

    if(charts.length==0){
      MailApp.sendEmail({
      to: teacherEmail,
      subject: "ERROR:"+emailSubject,
      htmlBody: "No charts in the spreadsheet"});    
      return;
    }   

    var chartBlobs=new Array(charts.length);
    //this is where the issue is. I need the email body to be the value, the actual words, of cell B2
    var emailBody = sheet.getRange('B2'); 
    var emailImages={};
    for(var i=0;i<charts.length;i++){
      var builder = charts[i].modify();
      builder.setOption('vAxis.format', '#');
      var newchart = builder.build();
      chartBlobs[i]= newchart.getAs('image/png');
      emailBody= emailBody + "<p align='center'><img src='cid:chart"+i+"'></p>";
      emailImages["chart"+i]= chartBlobs[i];
    }

    MailApp.sendEmail({
      to: emailAddress,
      subject: emailSubject,
      htmlBody: emailBody,
      inlineImages:emailImages
    });
  }
}
功能EmailParentsUpdate(工作表、电子邮件、emailSubject){
var targetspreadsheet=SpreadsheetApp.getActiveSpreadsheet();
var sheet=targetspreadsheet.getActiveSheet();
var emailSubject=‘成绩更新’;
var charts=sheet.getCharts();
var startRow=1;//要处理的第一行数据
var numRows=1;//要处理的行数
var dataRange=sheet.getRange(startRow,1,numRows,1)
var data=dataRange.getValues();
对于(数据中的i){
var行=数据[i];
var emailAddress=行[0];//第一列
var teacherEmail=”efazekas@dcsdk12.org"
if(charts.length==0){
MailApp.sendmail({
致:教师电子邮件,
主题:“错误:”+电子邮件主题,
htmlBody:“电子表格中没有图表”});
回来
}   
var chartBlobs=新数组(charts.length);
//这就是问题所在。我需要电子邮件正文是B2单元格的值,实际单词
var emailBody=sheet.getRange('B2');
var emailImages={};
对于(var i=0;i
返回,您需要调用以获取对单元格值的引用。例如:

var emailBody = sheet.getRange('B2').getValue();

在这里发布您的代码。从最初的印象来看,解决方案是您必须获得范围的值发布您的代码。我不确定将它放在代码中的什么位置,以便变量emailBody可以等于B2的值。希望我的代码有意义-ish。@LizFazekas我更新了我的答案,使其更清楚一些。
var emailBody = sheet.getRange('B2').getValue();