Вы можете изменить диаграмму на основе изменений на листе.
Используя простую триггерную функцию onEdit
с ее объектом события, вы можете определить, были ли внесены изменения листа, которые изменили вашу ссылочную ячейку.Если редактирование выполнено, то вы можете получить доступ к встроенным диаграммам листа и изменить их по своему усмотрению:
function onEdit(e) {
if (!e) throw new Error("You ran this manually");
const sheet = e.range.getSheet();
// Sanity check: only care about edits on the desired sheet.
if (sheet.getName() !== "some sheet name with your reference cell on it")
return;
// Sanity check: only care about edits to the reference cell:
if (e.range.getA1Notation() !== "reference cell A1 notation here")
return;
// Sanity check: only care if there is a new value.
if (e.value === undefined)
return;
// Example change: alter the color of the 3rd series. Assumption: e.value is a
// valid CSS color or CSS color code. If it is numeric, write code to transform it.
modifyChart_(sheet, 2, e.value)
}
function modifyChart_(sheet, seriesIndex, newCssColor) {
// Assume there is only one chart on this sheet.
const charts = sheet.getCharts();
if (charts.length > 1)
console.warn("Assumption invalid: more than 1 chart on the given sheet");
const barBuilder = charts[0].modify().asBarChart();
const option = {};
option[seriesIndex] = {"color": newCssColor};
barBuilder.setOption("series", option);
// Update the chart on the sheet.
sheet.updateChart(barBuilder.build());
}
Справочная документация (также известная как ТИП):