среда, 2 апреля 2014 г.

Скрипт для сбора файлов по ссылкам из таблицы

Уже второй год накануне лицейской научно-практической конференции школьников я мучаюсь вопросом, как лучше организовать онлайн-регистрацию на конференцию и отправку тезисов. Пробовала разные решения, которые описывала раньше здесь и здесь.Однако ни одно решение не устраивало полностью. Поэтому в этот раз мы решили сделать все через стандартную форму Google, в которой в качестве обязательного поля требовалось вписать ссылку на файл с тезисами. Кроме того, приложили подробную инструкцию, как этот файл загрузить на Google диск и расшарить.
Как показала практика, большинство учеников с этой задачей справились без проблем. И вот, теперь возникла задача: есть здоровенная таблица, в которой куча ссылок как на документы Google, так и на документы Word, сохраненные на Google Drive. Очень хочется эти документы собрать в одном месте, и очень не хочется делать это вручную.
В итоге, появился небольшой скрипт, который это делает.

Как работает скрипт

Для того, чтобы скрипт скопировал все файлы из таблицы по ссылкам в одну папку, необходимо, что в таблице был столбец с заголовком "ID". Чтобы получить ID документа из ссылки на документ, использовала следующий метод: пусть в столбце B хранится URL, а в столбец C я хочу получить ID. Тогда в С2 я записываю формулу:
=left(right(B2;len(B2)-find("/d/";B2)-2);len(right(B2;len(B2)-find("/d/";B2)-2))-17)
Не уверена, что формулы выглядят одинаково для всех типов файлов, но для документов Google и Word - это так. Таким образом, в столбце ID имеем идентификаторы каждого документа. 
Вообще говоря, вот тут описан способ как программно получить ID по URL, однако он не работает для файлов Word, загруженных на Google Drive без преобразования.
Теперь создаем новый скрипт и копируем туда код (в примере код уже размещен и на панели добавлено меню "Copy files")
В зависимости от того, сколько строк в таблице, скрипт может работать довольно долго. По окончании, на вашем диске Google появится папка NewFolder, в которую собраны все файлы. Дальше с ними можно делать то, что пожелаете.
Возможно, мы доблестно изобрели очередной велосипед, но, надеюсь, что этот способ кому-то облегчит жизнь.