Как насчет этих обходных путей? Я не мог найти, как создавать диаграммы без диапазона электронных таблиц для EmbeddedChartBuilder. Поэтому я подумал о двух других способах обхода.
Обходной путь 1
В этом случае, чтобы не отображать данные для диаграмм, он использует ряд других электронных таблиц.
var id = "### spreadsheet id ###"; // There is data in this spreadsheet.
var name = "### sheet name ###";
var datarange = "### data range ###";
var range = SpreadsheetApp.openById(id).getSheetByName(name).getRange(datarange);
var chart = SpreadsheetApp.getActiveSheet().newChart().asPieChart()
.addRange(range)
.build();
SpreadsheetApp.getActiveSheet().insertChart(chart);
Обходной путь 2
В этом случае, чтобы не отображать данные для диаграмм, он считывает данные с помощью newDataTable()
. Вы можете добавить свои данные в newDataTable()
.
Созданная диаграмма импортируется в электронную таблицу в виде изображения. Образец диаграммы взят здесь.
var data = Charts.newDataTable()
.addColumn(Charts.ColumnType.STRING, 'Month')
.addColumn(Charts.ColumnType.NUMBER, 'In Store')
.addColumn(Charts.ColumnType.NUMBER, 'Online')
.addRow(['January', 10, 1])
.addRow(['February', 12, 1])
.addRow(['March', 20, 2])
.addRow(['April', 25, 3])
.addRow(['May', 30, 4])
.build();
var chart = Charts.newAreaChart()
.setDataTable(data)
.setStacked()
.setRange(0, 40)
.setTitle('Sales per Month')
.build().getBlob();
SpreadsheetApp.getActiveSheet().insertImage(chart, 1, 1);
Использованная литература :
Если они вам не пригодятся, извините.
person
Tanaike
schedule
07.12.2017