Хабрахабр

[Из песочницы] Конвертирование XLS файлов в Google Spreadsheet с использованием Google Apps Script

Меня зовут Александр и я фрилансер, основная моя специализация — это Google Apps Script. Одному из заказчиков потребовалось программно конвертировать файлы Microsoft Excel в Google Spreadsheets. Я раньше с такой задачей не сталкивался, поэтому призвал на помощь Google. Перерыл кучу форумов, но готового решения не нашёл. Пришлось писать свой велосипед. И хотя код получился коротким, времени на нахождение решения потребовалось не мало. Вот то, что получилось:

function convert(folderId) ; file = Drive.Files.copy(file, sourceId, {convert: true}); }
}

Эта функция принимает в качестве параметра ID папки, в которой находятся файлы нуждающиеся в конвертировании. Находит в этой папке файлы соответствующие типу MimeType.MICROSOFT_EXCEL_LEGACY, это XLS документы Microsoft Excel, и создаёт их копии в этой же папке. При копировании и происходит конвертирование формата, за это отвечает параметр convert: true. Если в имени файла оригинала присутствует расшитение .xls, то оно удаляется.

MICROSOFT_EXCEL и
Если нужно обрабатывать XLSX файлы, то меняем тип на MimeType.

var fileName = source.getName().replace('.xls', ''); на var fileName = source.getName().replace('.xlsx', '');

Но если просто скопировать этот код и попытаться запустить, то он выдаст ошибку ''ReferenceError: Объект «Drive» не определен.". Для её устранения нужно в редакторе кода, в меню «Ресурсы» выбрать пункт «Дополнительные функции Google...». В появившемся окне, находим «Drive API» и включаем его.

image

В появившемся окне, переходим по ссылке с ID проекта. Затем, в меню «Ресурсы» выбрать пункт «Проект Developers Console...».

image

Появится список API, в нём переходим по ссылке «Drive API». На появившейся странице, в левом меню выбираем «APIs & auth» затем «APIs».

image

Можно запускать. Нажимаем на кнопку «Enable API» — готово.

Аналогично можно конвертировать файлы других форматов.

Надеюсь, что эта заметка сэкономит кому-нибудь время.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть