电子表格中包含的我的脚本会创建一个新文档,并根据电子表格数据插入表格和段落。我还想从脚本中将图表(或这些图表的jpg图像)插入到Document中。这似乎是可能的,但不起作用。这是我的代码:
function insertChartImage(){
var charts = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Score Card').getCharts();
var chart = charts[0].getAs('image/png'); // similar result with 'gif'
var doc = DocumentApp.openById(documentId);
doc.getBody().appendImage(chart); // similar result with insertImage()
}
结果是blank container结果(并且我已登录的课程)说“用户未登录”。
我已经广泛寻求文档,示例或教程,但没有任何运气。这一切都是可能的....似乎是一个基本的要求......能够在文档中包含图表,但也许这只是我?
我会非常感谢任何建议或指导我指出良好的文档。
最终的解决方案是重建图表。这是一个例子:
function insertBarChart(body) {
var values = SpreadsheetApp.getActive().getRange("Score!B2:D7").getValues();
var dataTable = Charts.newDataTable()
.addColumn(Charts.ColumnType.STRING, values[0][0])
.addColumn(Charts.ColumnType.NUMBER, values[0][1])
.addColumn(Charts.ColumnType.NUMBER, values[0][2])
.addRow(['Ownership', values[1][1], values[1][2]])
.addRow(['Control', values[2][1], values[2][2]])
.addRow(['Skills', values[3][1], values[3][2]])
.addRow(['Development', values[4][1], values[4][2]])
.addRow(['Social', values[5][1], values[5][2]])
.build();
var chart = Charts.newColumnChart()
.setDataTable(dataTable)
.setColors(["green", "red"])
.setDimensions(600, 400)
.setXAxisTitle("Elements")
.setYAxisTitle("Points")
.setTitle("Profile")
.build();
var scale = 0.5;
var img = body.appendImage(chart.getAs('image/png'));
img.setHeight(img.getHeight()*scale).setWidth(img.getWidth()*scale);
}
答案 0 :(得分:0)
(2017年5月)Google似乎解决了这个问题。您的原始代码适用于我,不会产生空白容器:
function insertChartImage(){
var charts = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Score Card').getCharts();
var chart = charts[0].getAs('image/png'); // similar result with 'gif'
var doc = DocumentApp.openById(documentId);
doc.getBody().appendImage(chart); // similar result with insertImage()
}