Жирный скрипт условного форматирования для Google Spreadsheets

То, что я хочу сделать, это то, что этот пользователь хотел сделать здесь:

Мне нужен сценарий, который выделяет ячейки в столбце A полужирным шрифтом, но только те ячейки, которые содержат слово "Привет".

Однако я совсем не разбираюсь в сценариях Google Apps, и мне нужен ответ, выраженный гораздо проще, чем то, что я мог найти там или где-либо еще. Любая помощь приветствуется; Спасибо!


person user2433459    schedule 29.05.2013    source источник


Ответы (3)


Для начала в электронной таблице откройте «Инструменты / Редактор сценариев…». Когда откроется диалоговое окно, выберите «Создать сценарий для… электронной таблицы». В итоге вы получите образец сценария — мы собираемся отредактировать его, чтобы он делал то, что вы хотите.

Измените функцию readRows(), как показано здесь. Изменение заключается в том, что вместо регистрации содержимого каждой строки мы будем использовать оператор if, чтобы проверить, содержит ли ячейка строку с «Hello». Затем, если это так, мы выделяем текст ячейки жирным шрифтом.

function readRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  // Arrays start at 0, Google Sheets start at 1 - must remember that.
  // We will loop starting at 1, because we want to skip the header in
  // Row 1, aka Array index 0
  for (var i = 1; i <= numRows - 1; i++) {
    var colA = values[i][0];
    if (colA.toString().indexOf('Hello') >= 0) {
      sheet.getRange(i+1,1).setFontWeight("bold");
    }
  }
};

Теперь, как запустить это? В примере уже есть функция onOpen(), которая создаст пользовательское меню... давайте просто изменим текст, отображаемый в пользовательском интерфейсе, как показано здесь. Единственное изменение в свойстве «имя» пунктов меню.

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Bold Hello",
    functionName : "readRows"
  }];
  sheet.addMenu("Script Center Menu", entries);
};

Сохраните свой сценарий. Вернитесь к своей электронной таблице и перезагрузите ее (чтобы запустить триггерную функцию onOpen). Когда появится ваше меню, все готово.

Затем начните с руководства "Первый скрипт" здесь. Документация Google Apps Script охватывает все службы, предоставляемые Apps Script, но базовая языковая структура и объекты — это javascript, так что вам следует с этим ознакомиться. Просто попробуйте поискать в Google «изучить javascript», и вы найдете множество руководств, книг и других ресурсов.

Я не могу сделать это проще.

person Mogsdad    schedule 29.05.2013

В уже не новых «Новых» листах этого можно добиться без скрипта:

Очистите форматирование, выберите Столбец А и Формат, Условное форматирование..., Форматировать ячейки, если... Текст содержит и:

hello

Затем для Formatting style нажмите B и Готово.

Этот способ не чувствителен к регистру и будет выделять такое содержимое, как OTHELLO.

person pnuts    schedule 06.06.2017

Если вы не пытаетесь установить слишком много правил условного форматирования, есть более простой способ установить цвета, но не полужирный. В электронной таблице Google Диска нажмите меню «Формат». Нижний пункт меню должен быть "Условное форматирование..."; щелкните это. Это должно создать диалоговое окно, которое по умолчанию выглядит примерно так (насколько я могу нарисовать его текстом):

                                                                                x
Conditional formatting
[Text contains ◊ ] [                       ]  []Text: [ ]  []Background: [ ]  x
                   e.g. "done" or "Jonathan"
_______________________________________________________________________________

+ Add another rule

[ Save rules ]   [ Cancel ]

В вашем примере вы ищете ячейки, содержащие «Привет», поэтому значение по умолчанию «Текст содержит» подойдет. Поместите «Привет» в текстовое поле и установите формат в полях «Текст» и «Фон:». Это не дает вам жирного шрифта, но позволяет использовать цвета.

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

person Steve    schedule 02.12.2013