- Вы хотите отправить электронное письмо, включая трехмерную диаграмму в электронной таблице.
Если мое понимание верно, как насчет этого обходного пути? Я испытал ту же проблему с вами. Когда диаграмма в электронной таблице извлекается в виде большого двоичного объекта, диаграмма большого двоичного объекта отличается от исходной диаграммы. Я думаю, что это может быть ошибкой. В этом случае в качестве одного из нескольких обходных путей я использовал следующий поток.
Поток измененного скрипта:
- Получить диаграммы из электронной таблицы.
- Создание Google Slides как временных.
- Вставка диаграмм в слайды как изображения.
- Извлечение вставленных диаграмм в виде BLOB-объектов.
- Отправка электронной почты, включая полученный BLOB-объект.
- Удалить временные Google Slides.
Модифицированный скрипт:
В этой модификации я модифицировал ваш скрипт. Пожалуйста, измените ваш скрипт следующим образом.
function email(sheet, toMail, ccMail, msg){
var charts = sheet.getCharts();
var slides = SlidesApp.create("sample"); // Added
var slide = slides.getSlides()[0]; // Added
var emailImages={};
var chartBlobs=new Array(charts.length);
var emailBody = ""; // Added
for(var i=0;i<charts.length;i++){
var image = slide.insertSheetsChartAsImage(charts[i]); // Added
chartBlobs[i]= image.getAs("image/png").setName("chartBlob"+i); // Modified
emailBody= emailBody + "<p align='left'><img src='cid:chart"+i+"'></p>";
emailImages["chart"+i]= chartBlobs[i];
}
MailApp.sendEmail({
to: toMail,
cc: ccMail,
subject: "ABC",
htmlBody: emailBody,
inlineImages:emailImages});
DriveApp.getFileById(slides.getId()).setTrashed(true); // Added
}
Примечание:
Ссылки:
Если я неправильно понял ваш вопрос, и этот обходной путь оказался не тем, что вы хотите, я прошу прощения.