[英]Inserting chart images from Spreadsheet into Document using GAS
电子表格中包含的我的脚本会创建一个新的文档,并根据电子表格数据插入表格和段落。 我还想将脚本中的图表(或这些图表的jpg图像)插入到文档中。 似乎有可能,但不起作用。 这是我的代码:
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()
}
结果是一个空白容器结果(和我登录的课程),显示“用户未登录”。
我一直在寻找文档,示例或教程,但没有任何运气。 这有没有可能……似乎是一个基本要求……能够在文档中包含图表,但这也许就是我吗?
我将非常感谢您的任何建议或为我提供好的文档指导。
最终的解决方案是重建图表。 这是一个例子:
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);
}
(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()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.