gpt4 book ai didi

google-apps-script - 将 Google 表格图表导出为图像

转载 作者:行者123 更新时间:2023-12-02 04:51:04 32 4
gpt4 key购买 nike

请您帮忙了解如何使用谷歌脚本将图表导出为图像。

我写了这段代码,但它不起作用。我担心 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 替换为您的电子邮件

通常,您应该会收到一封带有图表图像的电子邮件
但问题是您会收到一封带有黑色图像的电子邮件。

此致。

最佳答案

将 Google 表格图表导出为图像

通过电子邮件:
首先创建图表,然后获取它的 blob。然后将 blob 作为附件发送。

function createPieChart(){
var sheet = SpreadsheetApp.openById("<ID>").getSheetByName("<SheetName>");
var chartBuilder = sheet.newChart()
.asPieChart()
.set3D()
.addRange(sheet.getRange("A20").getDataRegion())
.setPosition(16, 5, 0, 0)
.setOption('title', "Total hour split in 2020");
var blob = chartBuilder.build().getBlob();
sendMail(blob);
}

function sendMail(img){
MailApp.sendEmail({
to: "john@domain.com",
subject: "test",
htmlBody: "fair enough",
attachments: [img]}); //If this gives you problems, replace img with img.getAs(MimeType.JPEG)
}

到另一个电子表格 (不同于图表的源数据所在的位置):

类似地,创建图表,然后将 blob 作为图像插入到目标工作表中:
function createPieChart(){
var srcSheet = SpreadsheetApp.openById("<ID>").getSheetByName("<SheetName>");
var destSheet = SpreadsheetApp.openById("<ID>").getSheetByName("<SheetName>");
var chartBuilder = srcSheet.newChart()
.asPieChart()
.set3D()
.addRange(sheet.getRange("A20").getDataRegion())
.setPosition(16, 5, 0, 0)
.setOption('title', "Total hour split in 2020");
var blob = chartBuilder.build().getBlob();
destSheet.insertImage(blob, 1, 1);
}

关于google-apps-script - 将 Google 表格图表导出为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28387355/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com