Листы Google: Как динамически изменить цвет гистограммы на основе значения ячейки с помощью скрипта Google? - PullRequest
0 голосов
/ 24 марта 2020

Я сделал диаграмму Ганта в Excel (см. Скриншот), и я пытаюсь понять, как динамически изменять цвет бара в зависимости от сотрудника (члена команды). Для справки, это не что иное, как гистограмма с накоплением, где первая часть столбца просто сделана прозрачной. Есть 2 серии: «Начало в день» - прозрачный, и «Длительность» - светло-голубой.

enter image description here

Как вы можете видеть прямо сейчас, все столбцы одного цвета, хотя я хочу что-то вроде этого:

enter image description here

Итак, я нашел этот фрагмент кода, который я редактировал это немного, и ему удалось заставить его работать так, чтобы, когда я меняю имя в столбце члена команды, он по-разному окрашивал диаграмму (по сути, он получает цветовой код CSS из скрытого столбца). Проблема в том, что он окрашивает все столбцы (потому что он нацелен на серию), а не только один. Я не смог найти способ заставить его работать только с одним баром.

Предложения? Буду признателен за любую оказанную помощь. (код ниже)

function modifyChart_(sheet, newCssColor) {
  // Assume there is only one chart on this sheet.
  const charts = sheet.getCharts();
  const barBuilder = charts[0].modify().asBarChart();
  const option = {};

  option[0] = {"color": "rgba(255,255,255, 0"};
  option[1] = {};
  option[2] = {"color": newCssColor};
  barBuilder.setOption("series", option);

  // Update the chart on the sheet.
  sheet.updateChart(barBuilder.build());
}

1 Ответ

0 голосов
/ 25 марта 2020

Как установить цвета гистограммы статически

Пример:

function modifyChart(sheet, newCssColor) {
  // Assume there is only one chart on this sheet.
  var sheet = SpreadsheetApp.getActive().getActiveSheet();
  const charts = sheet.getCharts();
  const barBuilder = charts[0].modify().asBarChart().setColors(["red", "green", "grey"]);
   sheet.updateChart(barBuilder.build());
}

Примечание:

  • Сценарий приложений не поддерживает подчеркивание _ в конце имени функции
  • Наиболее удобный способ изменения цвета панели - это setColors

Как установить цвет гистограммы динамически от значения ячейки

Пример:

function modifyChart(sheet, newCssColor) {
  // Assume there is only one chart on this sheet.
  var sheet = SpreadsheetApp.getActive().getActiveSheet();
  const charts = sheet.getCharts();
  var array = [];
  //assuming the color values are in cells A10, A11 and A12
  var colorValues = sheet.getRange("A10:A12").getValues();
  for(var i = 0; i < colorValues.length; i++){
    array.push(colorValues[i][0]);
  }
  const barBuilder = charts[0].modify().asBarChart().setColors(array);
  sheet.updateChart(barBuilder.build());
}

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...