• Форма перестала записывать данные в таблицу ответов. Как исправить?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Вы не должны никаким образом редактировать Таблицу. Редактируйте Форму, т.к. она источник данных.

    Выгрузите Форму в новую Таблицу и увидите все прежние данные. Новые ответы также будут приходить.

    Еще раз: не меняйте данные в Таблице на листе, куда привязана Форма - это неверное понимание механизма работы с данными. Соблюдайте ПРФ https://gist.github.com/oshliaer/45242e42d50a39b0a...
    Ответ написан
    2 комментария
  • Как скриптом достать ссылку из ячейки?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Самое простое, это взять ячейку, у нее есть метод getRichTextValue(), возвращаемый объект имеет метод getLinkUrl().

    cell.getRichTextValue().getLinkUrl();

    Извлечь ссылки из диапазона

    /**
     *
     * @param {GoogleAppsScript.Spreadsheet.Range} ref
     */
    function extractLink_(ref) {
      const richTextValues = ref.getRichTextValues();
      return richTextValues.map((row) =>
        row.map((cell) => {
          return cell.getLinkUrl();
        }),
      );
    }


    65d0548379b9c072210595.png

    Пример в Таблице https://docs.google.com/spreadsheets/d/1zPuzdN7EtT...
    Ответ написан
    Комментировать
  • Как оптимизировать код и исправить ошибку Exceeded maximum execution time?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Никак не оптимизировать, т.к. это облачные вычисления.

    Следующие методы сами по себе требует время:
    • makeCopy
    • saveAndClose


    Рассмотрите вариант порционного создания файлов. Тут может быть два подхода:
    1. Создание через самозапускаемый триггер. Т.е. триггер, который вызывает сам себя, пока не кончатся задания
    2. Вызов функции в интерфейсе пользователя. Это когда создание каждого документа вызывается через google.script.run на стороне клиента


    Помните, что в сутки один пользователь может создать только 200 Документов.
    Ответ написан
    Комментировать