【发布时间】:2020-02-18 00:50:46
【问题描述】:
请您帮忙了解如何使用 google 脚本将图表导出为图像。
我写了这段代码,但它不起作用。我担心 API getAs 已被弃用。
function TestEmailCharts(){
var sheet = SpreadsheetApp.getActiveSheet();
var charts = sheet.getCharts();
if(charts.length!=0)
{
var chartBlobs=new Array(charts.length);
var emailBody="Charts<br>";
var emailImages={};
for(var i=0;i<charts.length;i++){
chartBlobs[i]= charts[i].getAs("image/jpeg").setName("chartBlob"+i);
emailBody= emailBody + "<img src='cid:chart"+i+"'><br>";
emailImages["chart"+i]= chartBlobs[i];
}
MailApp.sendEmail({
to: "email@gmail.com",
subject: "test2",
htmlBody: emailBody,
inlineImages:emailImages});
}
}
要重现问题,请创建 Google 电子表格 用一些数据创建一个简单的图表。
将此代码添加到脚本中。 将 email@gmail.com 替换为您的电子邮件
通常您应该会收到一封带有图表图片的电子邮件 但问题是您将收到一封带有黑色图像的电子邮件。
最好的问候。
【问题讨论】:
-
我想查看更多代码。以及更多关于什么不起作用的解释。
-
你好@SandyGood,我添加了完整的代码和问题描述。
-
我的图表看起来像一个 png 文件。如果我手动将图表保存为文件,它将被设置为 png 文件。
.getAs("image/png")转换不起作用。它不能正确转换图表。要么有问题,要么存在错误,要么需要一种新方法将图表转换为图像。我找不到转换它的方法。也许在 Apps Script Issue tracker 上发布问题。确保首先搜索以查看是否已经存在某些内容。 Apps Script Issue Tracker -
这是一个 Apps 脚本问题发布:Chart.getAs('image/jpeg').getBytes()
-
@AlanWells - 您是否能够找到任何替代方法来将图表导出为图像而不是使用此转换?我今天遇到了同样的问题 - 它说
We're sorry, a server error occurred. Please wait a bit and try again????