Я работаю над таблицей со мной в электронной таблице google. You can visit it here.Как обновить или управлять диаграммой «Аннотированная временная диаграмма» через пользовательский код приложения электронной таблицы Google?
Если вы заходите на страницу, вы увидите 2 диаграммы на текущем листе (ввод графиков). Первый - встроенный, а последний или нижний - "Annotated Time Line"
. Теперь у меня есть сценарий (по поисковой системе), чтобы автоматически обновлять диаграмму всякий раз, когда строки таблицы электронной таблицы редактируются. Добавляя и отправляя входы в this form, вы можете добавить некоторые данные/строку в электронную таблицу. Входы будут автоматически добавлены в электронную таблицу.
Теперь, когда я запускаю или запускаю скрипт (onEdit
function), тогда обновляется только первая или верхняя диаграмма. Но второй или ниже один не обновляется.
Вот код:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
var c = s.getCharts();
for (var i in c) {
var ch = c[i];
var ranges = ch.getRanges();
var mod = ch.modify();
for (var j in ranges) {
var range = ranges[j];
mod.removeRange(range);
var newRange = expandRange_(range);
mod.addRange(newRange);
}
s.updateChart(mod.build());
}
}
function rangeShouldExpand_(range) {
var s = range.getSheet();
var numCol = range.getNumColumns()
var values = s.getSheetValues(range.getLastRow(), range.getColumn(), 2, numCol);
for (var i = 0; i < numCol; i++) {
if (!values[0][i] && !values[1][i] || !!values[0][i] && !!values[1][i]) {
continue;
} else {
return false;
}
}
return true;
}
function expandRange_(range) {
var s = range.getSheet()
var startRow = range.getRow();
var startCol = range.getColumn();
var numRows = range.getNumRows();
var numCols = range.getNumColumns();
while (rangeShouldExpand_(range)) {
numRows++;
range = s.getRange(startRow, startCol, numRows, numCols);
}
return range;
}
Теперь, что я должен делать или какие изменения я должен сделать, чтобы обе карты работают?
Спасибо, Омар Шариф
Ваш скрипт возвращает 'ReferenceError:" chart "не определен. (строка 13) 'Я предполагаю, что в вашей копии отсутствует какая-то часть ... –
Я изменил недостающие части кода. Я ошибочно написал 'chart' вместо' ch' в строке '13 и 14'. @Serge insas –
thx, я тестировал здесь, все графики обновляются, когда я что-то меняю на листе1 ... Не понял ли я ваш вопрос, когда думал, что он не работает? –