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

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

function convert(folderId) {
  var folderIncoming = DriveApp.getFolderById(folderId);
  var files = folderIncoming.getFilesByType(MimeType.MICROSOFT_EXCEL_LEGACY);
  
  while (files.hasNext()) {
    var source = files.next();
    var sourceId = source.getId();
    var fileName = source.getName().replace('.xls', '');
    
    var file = {
        title: fileName,
      };
      
    file = Drive.Files.copy(file, sourceId, {convert: true});
  }
}


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

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

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


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

image

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

image

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

image

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

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

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

© Habrahabr.ru