我正在尝试使用以下代码将Google表格中的3D图表插入电子邮件中,但是电子邮件中的图像已转换为2D。 谁能帮我将Google工作表中的图表提取到具有所有属性的电子邮件中?
原始图表
电子邮件中的图表
function email(sheet, toMail, ccMail, msg){
var charts = sheet.getCharts();
var emailImages={};
var chartBlobs=new Array(charts.length);
for(var i=0;i<charts.length;i++){
chartBlobs[i]= charts[i].getAs("image/png").setName("chartBlob"+i);
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});
}
答案 0 :(得分:1)
如果我的理解是正确的,该解决方法如何?我也遇到过同样的问题。当电子表格上的图表作为blob检索时,blob的图表与原始图表不同。我认为这可能是一个错误。在这种情况下,作为以下几种解决方法之一,我使用了以下流程。
在此修改中,我修改了您的脚本。请按如下所示修改脚本。
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
}
如果我误解了您的问题,而这种解决方法不是您想要的,我表示歉意。