Google Apps Script - Получить листы по цвету вкладки - PullRequest
0 голосов
/ 22 февраля 2019

Мне интересно, есть ли способ получить листы по цвету их вкладок в Google Script?

В настоящее время я использую этот массив для захвата листов по имени:

function AddRow() {
  var ss = SpreadsheetApp.openById('spreadsheetId');
  var contractorSheets,i,L,sheet;
contractorSheets = [
  "Employee 1's Timesheet",
  "Employee 2's Timesheet",
  "Employee 3's Timesheet",
  "Employee 4's Timesheet",
  "Employee 5's Timesheet",
  "Employee 6's Timesheet",
  "Employee 7's Timesheet"
]
L = contractorSheets.length;
for (i=0;i<L;i++){
  sheet = ss.getSheetByName(contractorSheets[i]);
  sheet.insertRowAfter(sheet.getLastRow());
  }
}

Расписания постоянно создаются и удаляются, и мне придется обновлять этот массив каждый раз, когда это происходит.Однако все вкладки расписания оранжевые (# ff9900), поэтому я подумал, что если бы я мог перетаскивать вкладки по этому цвету, это не имело бы значения, как бы оно ни называлось, и в долгосрочной перспективе сделал бы электронную таблицу намного более динамичной независимо от оборота иимена листов.

Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Это легко сделать, используя уже имеющиеся методы:

function getSheetsWithTabColor_(colorHex, allSheets) {
  if (!allSheets || !allSheets.length)
    allSheets = SpreadsheetApp.getActive().getSheets();
  return allSheets.filter(function (sheet) { return sheet.getTabColor() === colorHex; });
}

function foo() {
  const sheets = SpreadsheetApp.getActive().getSheets();
  const timesheets = getSheetsWithTabColor_("some color hex", sheets);
  timesheets.forEach(function (sheet) {
    /** do your stuff that should be done on sheets with this color tab */
  });
}

Ссылки

0 голосов
/ 22 февраля 2019

Попробуйте что-то вроде этого

function addRow() {
SpreadsheetApp.openById('xxxxxxxxxxxxxxxyPz4').getSheets()
    .filter(function (sh) {
        return sh.getTabColor() == '#ff9900'; //change to match color
    }).forEach(function (sh) {
        sh.insertRowAfter(sh.getLastRow());
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...