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

Официальная ссылка на Google App Script

Предыстория / проблема

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

Если вы уже знаете, как работает Google App Script, посмотрите мой последний код на Github.

Почему Google App Script

Я знаю, что есть много вариантов, и я просто хотел использовать простые и бесплатные услуги.

  • Google App Script основан на Javascript, поэтому его легко понять.
  • Может работать с приложениями G-Suite и может много автоматизировать вашу избыточную работу.
  • Я могу сохранить свой большой набор данных с вопросами на G-Drive.
  • Мне не нужно беспокоиться об управлении доступом к участникам.
  • В конце вы создадите Google Doc, которым также можно поделиться.
  • Ваш сценарий будет включен в документ, и любой, у кого есть доступ, сможет редактировать логику.
  • Вы можете создать свой собственный HTML-вывод для нескольких входов от пользователя

Решение

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

Шаг 1:

  • Создайте таблицу Google Spreahsheet: в моем наборе вопросов должны быть вопросы о способностях и технические вопросы, вы можете создать количество листов, используя значок «+». Для моего случая достаточно листов и назовите их, как показано на изображении ниже.

  • Вопросы следует добавлять в формате, в листах способности и программирование.

  • Чтобы включить редактор сценариев, перейдите к Инструменты - ›Редактор сценариев, который откроет редактор, и все файлы сценариев будут иметь расширение .gs.

  • Теперь вы можете начать использовать проект, назовите проект (Создатель вопроса).
  • Базовое тестирование скрипта приложения
function myfunction() {
 Logger.log(‘My start project’);
}

После сохранения: вы можете выбрать функцию, как показано выше, и запустить. Для проверки журналов перейдите в Просмотр - ›Журналы.

  • Если требуется какая-либо авторизация, он запрашивает разрешение у пользователя и обрабатывается сам.

Шаг 2:

Теперь вам нужно иметь два файла Code.gs (файл по умолчанию, который вы можете переименовать) и Index.HTML, которые можно добавить из Новый- ›HTML-файл в редакторе скриптов.

  • Скопируйте и вставьте код в Code.gs и Index.html из Github
  • Выберите функцию startQuestionPaperSetup и запустить скрипт. Если вы перейдете на вкладку своей электронной таблицы, вы увидите, как показано ниже.

После того, как вы предоставите URL-адрес документа Google, созданный в вашем Gdrive, вы сможете увидеть результат.

Объяснение:

  • Сценарий приложения представит пользователю настраиваемый диалог с помощью файла HTML (Index.html).
var htmlOutput = HtmlService
    .createHtmlOutputFromFile('Index')
    .setWidth(300)
    .setHeight(250);
  SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Question Paper Generator');
  • Как только пользователь нажимает кнопку отправки, он вызывает метод userDidClickSubmit, используя скрипт google.script.run.userDidClickSubmit с параметрами, которые вы хотите получить от пользователя.
function userDidClickSubmit(noOfSets, noOfQuestions, url) {
}
  • Вы можете использовать подсказку для ввода данных, но единственное ограничение с подсказкой состоит в том, что она позволяет вводить только одно поле за раз. Подробности читайте в ссылке.

Последний шаг:

Чтобы сценарий был доступен на вкладке "Электронная таблица", чтобы пользователю не приходилось каждый раз переходить в редактор сценариев.

  • Откройте Инструменты - ›Макросы -› Импорт.

  • Выберите функцию, которая будет точкой входа в скрипт, и нажмите Добавить функцию.

  • Тогда он будет доступен в списке макросов.

  • Вы можете создать сочетание клавиш, используя Управление макросами.

Пока, ура