Diаgrammide joonistamine Google App Scriptiga
// Когда открываешь таблицу — появляется меню для выбора диаграммы
function onOpen(e) {
addMenu();
}
// Добавляет меню “Diagrammid” с кнопками для построения графиков
function addMenu() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Diagrammid') // Меню "Диаграммы"
.addItem('Tulpdiagramm', 'BarChart') // Кнопка: Столбчатая диаграмма
.addItem('Joondiagramm', 'LineChart') // Кнопка: Линейная диаграмма
.addItem('Sektordiagramm', 'PieChart') // Кнопка: Круговая диаграмма
.addToUi();
}
// Строит столбчатую диаграмму
function BarChart() {
AddChart('Tulp'); // Tulp = столбцы
}
// Строит линейную диаграмму
function LineChart() {
AddChart('Joon'); // Joon = линия
}
// Строит круговую диаграмму
function PieChart() {
AddChart('Sektor'); // Sektor = круг
}
// Эта функция делает всю работу по созданию диаграммы
function AddChart(type) {
var ss = SpreadsheetApp.getActiveSpreadsheet(); // Берём текущую таблицу
var sheet = ss.getSheetByName('SALES'); // Ищем лист с названием "SALES"
// Если лист не найден — показываем сообщение и выходим
if (!sheet) {
SpreadsheetApp.getUi().alert("Лист 'SALES' не найден!");
return;
}
var lastRow = sheet.getLastRow(); // Последняя строка с данными
// Если данных меньше двух строк — нечего строить
if (lastRow < 2) {
SpreadsheetApp.getUi().alert("Недостаточно данных для диаграммы.");
return;
}
// Удаляем все старые диаграммы, чтобы не мешались
var charts = sheet.getCharts();
charts.forEach(chart => sheet.removeChart(chart));
// Берём таблицу с заголовками и данными (A и B столбцы)
var dataRange = sheet.getRange("A1:B" + lastRow);
// Готовим новый график
var builder = sheet.newChart()
.addRange(dataRange) // указываем диапазон данных
.setOption('title', 'Диаграмма продаж') // заголовок графика
.setPosition(2, 4, 0, 0); // где разместить график
// Если выбрана линия
if (type === 'Joon') {
builder.setChartType(Charts.ChartType.LINE)
.setOption('hAxis.title', 'Продавец') // горизонтальная ось
.setOption('vAxis.title', 'Доллары США'); // вертикальная ось
}
// Если выбраны столбцы
else if (type === 'Tulp') {
builder.setChartType(Charts.ChartType.BAR)
.setOption('vAxis.title', 'Продавец') // вертикальная ось
.setOption('hAxis.title', 'Доллары США'); // горизонтальная ось
}
// Если выбран круг
else if (type === 'Sektor') {
builder.setChartType(Charts.ChartType.PIE)
.setOption('is3D', true); // объёмная круговая диаграмма
}
// Добавляем диаграмму на лист
sheet.insertChart(builder.build());
}



Код на удаление диограмм
function KustutaDiagramm() {
// Получаем открытую таблицу (ту, в которой мы сейчас находимся)
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Пытаемся найти лист с названием "SALES"
var sheet = ss.getSheetByName('SALES');
// Если такого листа нет — выводим сообщение и прекращаем выполнение
if (!sheet) {
SpreadsheetApp.getUi().alert("Lehte nimega 'SALES' ei leitud!"); // "Лист с именем 'SALES' не найден!"
return;
}
// Получаем все диаграммы, которые есть на листе
var charts = sheet.getCharts();
// Если диаграмм вообще нет — сообщаем об этом и выходим
if (charts.length === 0) {
SpreadsheetApp.getUi().alert("Diagramme pole, mida kustutada."); // "Нет диаграмм, нечего удалять."
return;
}
// Проходим по всем найденным диаграммам и удаляем каждую
charts.forEach(chart => sheet.removeChart(chart));
// Сообщаем пользователю, что все диаграммы успешно удалены
SpreadsheetApp.getUi().alert("Kõik diagrammid on edukalt kustutatud."); // "Все диаграммы успешно удалены."
}
Откуда бролась идея и информация