Как преобразовать формулу ячейки в читаемый текст при экспорте в HTLM? - PullRequest
0 голосов
/ 22 мая 2019

У меня есть документ со скриптом, который делает ежедневные отчеты и отправляет их в список рассылки. Проблема в том, что существует много обезьян, чтобы этот документ выглядел великолепно и не связывался с формулами.

Скрипт принимает ячейки, проверяет, являются ли они =hyperlink(blablalba.com, "number here"), и создает таблицу с активируемым номером.

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

сначала я принял простое решение разделить ссылку на A-часть + дата + b-часть. так это было похоже на

=C4&TEXT(TODAY(),"yyyy-mm-dd")&C5.

После этого я сделал рабочий лист, куда вы положили номер и отчетный лист Где сценарий ищет. так клетка выглядит как

=HYPERLINK(slinks!C$6, 'Work-sheet'!C5)

Он берет номер из wsheet и ссылку из slinks (=C4&TEXT(TODAY(),"yyyy-mm-dd")&C5)

и создать гиперссылку для ячейки

Но

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

У меня есть эта часть скрипта, которая, я думаю, собирает данные из ячейки, чтобы создать таблицу

&TEXT(TODAY(),"yyyy-mm-dd")

может быть изменено на другую ячейку с датой, введенной вручную так будет выглядеть c4 & a6 & c5

      //collect the data for the current day - the entire row, starting from column 2
  //var dayData = mapValues(feedbackSheet.getRange(currentRow, 2, 1, Object.keys(columnIndices).length+1).getValues());
  Logger.log(`${currentRow}, 2, 1, ${Object.keys(columnIndices).length+1}`)
  var range = feedbackSheet.getRange(currentRow, 2, 1, Object.keys(columnIndices).length+1);
  var rangeFormulas = range.getFormulas();
  var rangeValues = range.getValues();

  var newValuesArr = [];
  var len = rangeFormulas[0] ? rangeFormulas[0].length : 0;
  for (var i = 0; i < len; i++) {
    if (rangeFormulas[0][i] !== '') {
      var url = rangeFormulas[0][i].match(/=hyperlink\("([^"]+)"/i);
      if (url) {
        newValuesArr.push('<a href="' + url[1] + '" target="_blank">' + rangeValues[0][i] + '</a>');
        continue;
      }
    }

    newValuesArr.push(rangeValues[0][i]);
  }

  var dayData = mapValuesNew(newValuesArr);

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

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