1

我正在尝试使用Google Apps Script在Google Docs中插入雷达图。该图表在Google Sheets中,但在 Google Docs 中却非常难看。

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

如果有人可以进一步setOptions()指出我可以用来实现理想的结果,那就太好了。

这是我试图在谷歌文档中实现的目标: 预期雷达图

这是我的代码:

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);

}

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

在表格中

在 GDOCS 中

4

1 回答 1

0

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

单击插入,然后单击图表,然后单击来自工作表

以上是因为您已经发现将图表转换为 PNG 的结果图像看起来不一样。另一方面,电子表格服务包括类嵌入图表,但文档服务不包括。

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

参考

将图表、表格或幻灯片链接到 Google 文档或幻灯片

于 2019-06-09T16:16:56.050 回答