使用Appscript将Google图表中的3d图表作为图像插入电子邮件中

采得百花成蜜后,为谁辛苦为谁甜。这篇文章主要讲述使用Appscript将Google图表中的3d图表作为图像插入电子邮件中相关的知识,希望能为你提供帮助。
我正在尝试使用以下代码将谷歌表中的3D图表插入电子邮件,但电子邮件中的图像将转换为2D。任何人都可以帮我把谷歌表中的图表拉成一封包含所有属性的电子邮件吗?
原始图表
电子邮件中的图表

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='https://www.songbingjia.com/android/cid:chart"+i+"'> < /p> "; emailImages["chart"+i]= chartBlobs[i]; } MailApp.sendEmail({ to: toMail, cc: ccMail, subject: "ABC", htmlBody: emailBody, inlineImages:emailImages}); }

答案
  • 您想在电子表格上发送包含3D图表的电子邮件。
如果我的理解是正确的,那么这个变通方法呢?我遇到了同样的问题。当电子表格上的图表被检索为blob时,blob的图表与原始图表不同。我认为这可能是一个错误。在这种情况下,作为几种解决方法之一,我使用了以下流程。
Flow of modified script:
  1. 从电子表格中检索图表。
  2. 创建Google幻灯片作为时间。
  3. 将图表作为图像插入幻灯片。
  4. 将插入的图表检索为blob。
  5. 发送包含检索到的blob的电子邮件。
  6. 删除时态Google幻灯片。
Modified script:
在此修改中,我修改了您的脚本。请修改您的脚本如下。
function email(sheet, toMail, ccMail, msg){ var charts = sheet.getCharts(); var slides = SlidesApp.create("sample"); // Added var slide = slides.getSlides()[0]; // Addedvar 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='https://www.songbingjia.com/android/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 }

Note:
  • 在此修改后的脚本中,时态Google幻灯片已移至回收站框。
  • 我向the issue tracker报告了这个问题。
References:
  • Save a canvas image to google drive. 我也在这里提出了上述解决方法。
  • insertSheetsChartAsImage()
  • setTrashed()
【使用Appscript将Google图表中的3d图表作为图像插入电子邮件中】如果我误解了你的问题并且这个解决方法不是你想要的,我道歉。

    推荐阅读