Как добавить существующий график в листы при отправке электронного письма - PullRequest
0 голосов
/ 17 июня 2019

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

function sendEmails() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Agent Report - Monthly") 
    var startRow = 3; // First row of data to process since there is a header row 
    var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Agent Report - Monthly").getRange("D3");
    var emailAddress = emailRange.getValues();

    var chartImg = Charts.newLineChart.setRange(12, 8) //This Throws an error
    var subject = "Agent Report - Monthly"; // This is the subject of the email  
    var greeting_text = 'Hey Please find the below Report '+'</b><br><br>';
    var text = greeting_text;
    text+=SheetConverter.convertRange2html(sheet.getRange(startRow, 3 ,10,8));
    text+='<br>';
    var options = {
        htmlBody: text,
        noReply:true
    };
    MailApp.sendEmail({
        to: "xxx@der.com",
        subject: subject,
        htmlBody: options,
        inlineImages: {
            chartImg: chartImage,
        }
    });
}

Когда я пытаюсь добавить диаграмму в переменную ChartImg в строке 7, возникает исключение.

1 Ответ

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

Если я правильно понимаю, у вас уже есть таблица, созданная без проблем в электронной таблице, и вы хотите получить ее только в виде изображения. Для этого вам понадобится ссылка на диаграмму на листе, а затем использовать метод getAs() на блобе диаграммы, для вас это будет выглядеть примерно так:

var chart = sheet.getCharts()[0]; // assuming you only have that chart, this is just to get the chart's reference.
var options = {
    htmlBody: "<img src='cid:chart' style='width:24px; height:16px;'/>",
    noReply:true
};

var chartImg = chart.getBlob().getAs('image/png').setName("areaBlob");

// Then you would add it in the body of the email as an attachment
MailApp.sendEmail({
    to: "xxx@der.com",
    subject: subject,
    htmlBody: options,
    inlineImages: {
        chart: chartImg,
    }
});

В следующей ссылке вы можете найти более подробное объяснение и пример: Изображение диаграммы в электронной почте из таблицы Google с google-apps-script возвращает белое изображение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...