【发布时间】:2020-05-27 08:24:09
【问题描述】:
我的目标是使用带有 google app 脚本的 google sheet 中的信息创建 google 文档。
我可以根据谷歌表格中的数据生成雷达图。雷达图是这样的:
问题:当我将图表作为图像并将其粘贴到谷歌文档时。看起来都错了。见图片和代码。
radar chart not so good looking
我的代码:
var chart = sheet.newChart()
.setChartType(Charts.ChartType.RADAR)
.setPosition(8,2,0,0)
.setNumHeaders(1)
.setOption('title', title)
.addRange(sheet.getRange("A1:G1"))
.addRange(sheet.getRange("A2:G2"))
.setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS)
.setTransposeRowsAndColumns(true)
.setOption('vAxes',{0: {viewWindow: {min: 0, max: 100}}})
.setOption('series', {0: {lineWidth: 4, color: '#FFA500'}})
.build();
sheet.insertChart(chart);
var image = sheet.getCharts()[0].getBlob().getAs('image/png');
我最近发现的类似帖子是这个:Automatting Radar Chart Generation in Google Doc using Google Apps Script
但是那里没有给出答案。希望有人能帮忙。
编辑: 多亏了 Tanaike,它现在可以正常工作了。对于任何想知道的人,这是我用来生成图表并将其插入谷歌文档的脚本。用图表替换文本。
var chart = sheet.newChart()
.setChartType(Charts.ChartType.RADAR)
.setPosition(8,2,0,0)
.setNumHeaders(1)
.setOption('title', title)
.addRange(sheet.getRange("A1:G1"))
.addRange(sheet.getRange("A2:G2"))
.setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS)
.setTransposeRowsAndColumns(true)
.setOption('vAxes',{0: {viewWindow: {min: 0, max: 100}}})
.setOption('series', {0: {lineWidth: 4, color: '#FFA500'}})
.build();
sheet.insertChart(chart);
// workaround by Tanaike
const slides = SlidesApp.create("temp");
const image = slides.getSlides()[0].insertSheetsChartAsImage(chart).getAs("image/png");
DriveApp.getFileById(slides.getId()).setTrashed(true);
var item = doc.getBody().findText("<text-to-replace>");
var r = item.getElement();
r.asText().setText("");
var img = r.getParent().asParagraph().insertInlineImage(0, image);
【问题讨论】:
标签: javascript google-apps-script radar-chart