Я пытаюсь удалить все вкладки, если фактическое именование вкладок не существует в массиве.
Пример данных - май
Пример данных - апрель
Я предоставляю два примера, чтобы проиллюстрировать, как исходные данные извлекаются каждый месяц. В моем коде есть процесс извлечения API, который выполняет эту работу автоматически каждый месяц. Мой код ниже берет эти необработанные данные и разбивает их на отдельные вкладки в соответствии со столбцом «Поставщик»:
function SpreadProduct() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var values = sheet.getDataRange().getValues();
// remove header row values from array
values.shift();
// data structure
var ds = {};
values.forEach(function(row) {
var ven = row.shift(); // 1st col
var product = row.shift(); // 2nd col
ds[ven] = ds[ven] || {};
ds[ven][product] = ds[ven][product] || [];
// set value on ds
ds[ven][product] = [parseInt(row[0]), parseInt(row[1])];
});
Logger.log(ds);
// result object, for each vendor create array of rows
// { A: [ row, row... ]... }
var rs = {};
Object.keys(ds).forEach(function(v) {
rs[v] = rs[v] || [];
Object.keys(ds[v]).forEach(function(p) {
if (ds[v][p]) {
rs[v].push([p, ds[v][p][0], ds[v][p][1]]);
} else {
rs[v].push([p, 0, 0]);
}
});
});
Logger.log(rs);
// write rows
Object.keys(rs).forEach(function(v) {
var headers = [[v, 'Product'].join(' '), 'Sales', 'leftover'];
// insert headers into rows for writing
rs[v].unshift(headers);
try {
ss.insertSheet(headers[0]);
} catch (e) {}
var sh = ss.getSheetByName(headers[0]);
sh.clear();
sh.getRange(1, 1, rs[v].length, 3).setValues(rs[v]);
});
}
Таблицы Google Sheets являются результатами приведенного выше кода.
Теперь у меня m trying to delete the tab if the following month doesn
есть продавец предыдущего месяца.
Так, например, «Месяц апреля» не имеет «Apple» в столбце «Вендор», тогда как «Месяц Март» имеет «Apple».
Поэтому, когда я вычисляю таблицу за апрель, вкладка «Apple» была удалена
Есть ли способ сделать этот процесс программным способом в скрипте листа Google?