使用Google Apps脚本在Google文档中自动生成雷达图

时间:2019-06-09 14:45:08

标签: google-apps-script charts google-sheets google-docs

我正在尝试使用 Google Apps脚本 Google文档中插入雷达图。该图表位于 Google表格中,但在Google文档中却非常难看。

我在SO上找到了一篇帖子,建议直接使用Apps Script创建图表,但这对我也不起作用。

如果有人可以指出进一步的setOptions(),我可以用来达到理想的效果。

这是我要在Google文档中实现的目标: Expected Radar Chart

这是我的代码:

function createChart() {
var sheet = SpreadsheetApp.openById("SPREADSHEET_ID").getSheetByName("Sheet1");

var chart = sheet.newChart();

chart
.addRange(sheet.getRange("K2:K7"))
.addRange(sheet.getRange("G2:G7"))
.addRange(sheet.getRange("I2:J7"))
.setChartType(Charts.ChartType.RADAR)
.setNumHeaders(1)
.setOption("useFirstColumnAsDomain", true)
.setOption("colors",["#e0296c", "#0000ff", "#ff9900"])
.setOption('width', 700)
.setOption('height', 600)
.setOption('legend', {position: 'bottom', textStyle: {fontSize: 12}})
.setPosition(1,1,0,0)
.setOption('vAxis.gridlines.count', 4)
.setOption('series', {  0: { lineWidth: 1, pointSize: 5},
                        1: { lineDashStyle: [4, 4] },
                        2: { lineDashStyle: [4, 4] }
                        })
.setOption('hAxis.format',{format: 'percent'})

chart = chart.build();

sheet.insertChart(chart);

var doc = DocumentApp.openById("DOC_ID");
var body = doc.getBody();

var chartBlob = chart.getAs('image/png').copyBlob();
body.appendImage(chartBlob);

}

这是我到目前为止所取得的成就:

在GSHEETS中

在GDOCS中

1 个答案:

答案 0 :(得分:0)

使用内置的Google文档功能,可以链接Google表格中的图表。详细步骤在官方的G Suite文档编辑器文档中,但核心步骤是:

  

点击插入,然后点击图表,然后点击来自表格

以上是因为您已经发现,将图表转换为PNG的结果图像看起来并不相同。另一方面,电子表格服务包含Class Embedded Chart,但文档服务不包含。

您可以尝试通过使用新的EmdeddedObject从Docs API中使用Documents Advanced Service

参考

Link a chart, table, or slides to Google Docs or Slides