@cajoke5979

Как в Гугл таблицах разбить текст по жирности?

Всем привет! Есть маленькая задача, которую я не знаю как реализовать. Обрабатываю текст с помощью скриптов в Гугл таблицах, получаю значение текста ячейки: и мне необходимо сделать следующее: если первая строка ячейки жирная - добавить ее в одну переменную, а вторую заполнить оставшимся текстом, если не жирная то одну из переменных оставить пустой. 5e7f67ddd9078989363961.png Не представляю как это делать, потому что нигде не нашел информации как определить жирность части текста а не ячейки в целом. Спасибо!
  • Вопрос задан
  • 901 просмотр
Пригласить эксперта
Ответы на вопрос 1
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
Нужно использовать скрипт, в нём смотреть getRichTextValue()

/**
 * Аналог функции split. Разбивает по наличию жирности у текста
 * [ ProgrammerForever (c) 2020 ]
 * @param {"A1"} rangeName Имя ячейки
 * @return Возвращает массив строк с чередующейся жирностью
 * @customfunction
 */
function splitByBold(rangeName) { 
  if (!rangeName) {
    throw "Параметр rangeName не задан. Должен быть адресом ячейки"
  };
  
  var rtv = SpreadsheetApp.getActiveSheet().getRange(rangeName).getRichTextValue();
  
  if (rtv) {
    rtv=rtv.getRuns()
  }else{
    return SpreadsheetApp.getActiveRange().getValue();
  };  
  
  var outData = [rtv[0].getText()];
  var isBold = rtv[0].getTextStyle().isBold();
  var k=0;
  for (var i = 1; i < rtv.length; i++){
    if (rtv[i].getTextStyle().isBold() === isBold){
      outData[k]+= rtv[i].getText();
    }else{
      k+=1;
      outData[k]= rtv[i].getText();
      isBold = rtv[i].getTextStyle().isBold();
    };
  };
  return outData;
}

Демонстрационная таблица
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы