Google apps script 如何从google sheet下载PNG格式的图表
我试图在Google Sheet中创建一个自定义菜单,允许我将当前Google Sheet文件中所有工作表中的所有图表下载到PNG图像中,使用图表标题作为图像名称,保存到我的Windows PC的默认下载目录中 我打算用Python使用GoogleSheetAPI来做这件事,结果发现,答案基本上是说我可以用GoogleApps脚本来做这件事 我找到了一个解释如何将图表导出到幻灯片中的方法,但不知道如何将图表下载为PNG文件 这可能吗 如果是的话,有人能告诉我正确的方向吗?谢谢 方法: 您可以使用函数Google apps script 如何从google sheet下载PNG格式的图表,google-apps-script,google-sheets,google-sheets-charts,Google Apps Script,Google Sheets,Google Sheets Charts,我试图在Google Sheet中创建一个自定义菜单,允许我将当前Google Sheet文件中所有工作表中的所有图表下载到PNG图像中,使用图表标题作为图像名称,保存到我的Windows PC的默认下载目录中 我打算用Python使用GoogleSheetAPI来做这件事,结果发现,答案基本上是说我可以用GoogleApps脚本来做这件事 我找到了一个解释如何将图表导出到幻灯片中的方法,但不知道如何将图表下载为PNG文件 这可能吗 如果是的话,有人能告诉我正确的方向吗?谢谢 方法: 您可以使用
getCharts()
从文档中获取图表,使用函数getAs()
将它们转换为图像,然后从Google Drive获取链接
一小条
推荐
谢谢@Alessandro,这一切都如愿!但是,与直接手动保存为PNG相比,图像质量似乎更低。此外,图表还带有自定义的图表样式,即线宽、点大小等,getAs()函数似乎不保留这些自定义设置。如果有一种方法可以获得与直接手动下载相同的图像,请告诉我该方向好吗?再次感谢!我明白了,我发现这不会发生在幻灯片上。您可以使用幻灯片演示文稿作为代理,将图表保存为图像,并最终以与以前相同的方式从驱动器中获取URL。
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var chart = sheet.getCharts()[0];
// create a proxy slide
var proxySlide = SlidesApp.create("proxySlide");
var proxySaveSlide = proxySlide.getSlides()[0];
var chartImage = proxySaveSlide.insertSheetsChartAsImage(chart);
// Get image from slides
var myimage = chartImage.getAs('image/png');
var url = DriveApp.createFile(myimage).getUrl();
// delete the proxy slide
DriveApp.getFileById(proxySlide.getId()).setTrashed(true);
return url;
}