Скрипт для конвертации .XLSX в Google Sheet и перемещения конвертированного файла - PullRequest
0 голосов
/ 09 мая 2019

Я знаю, что можно конвертировать файлы Excel в Google Sheets с помощью API скрипта и накопителя, но я ищу скрипт для конвертации листа Excel и перемещения преобразованного файла в другую папку.

Итакнеобходимо выполнить следующие шаги:

  1. Конвертировать Excel (.xls / .xlsx) в Google Sheet из FolderA.
  2. Переместить преобразованный файл из FoldarA в FolderB.
  3. Удалить оригинальный файл Excel из папки A
  4. Надеемся, что шаг 3 позволит избежать этого, но избегайте дублирования уже преобразованного файла.

Файлы Excel вставляются в локальную папку, которая синхронизируется сгугл диск, а файлы не больше 3мб.Текущий сценарий выглядит следующим образом.Это конвертирует файлы, но помещает их в корневую папку и будет дублировать конвертацию при повторном запуске скрипта.

 function importXLS(){
  var files = DriveApp.getFolderById('1hjvNIPgKhp2ZKIC7K2kxvJjfIeEYw4BP').searchFiles('title != "nothing"');
  while(files.hasNext()){
    var xFile = files.next();
    var name = xFile.getName();
    if (name.indexOf('.xlsx')>-1){ 
      var ID = xFile.getId();
      var xBlob = xFile.getBlob();
      var newFile = { title : name+'_converted',
                     key : ID
                    }
      file = Drive.Files.insert(newFile, xBlob, {
        convert: true
      });
    }
  }
}

1 Ответ

0 голосов
/ 10 мая 2019
  • Вы хотите создать преобразованные файлы электронных таблиц Google в "FolderB".
  • Вы хотите удалить файлы XLSX в "FolderA" после преобразования файлов.
  • ВыХотите достичь выше, используя Google Apps Script.

Если мое понимание верно, как насчет этой модификации?В этой модификации я изменил ваш скрипт.

Точки модификации:

  • Вы можете напрямую создать файл в определенную папку, используя свойство parents в теле запроса.
  • Вы можете удалить файл, используя Drive.Files.remove(fileId).

Модифицированный скрипт:

function importXLS(){
  var folderBId = "###"; // Added // Please set the folder ID of "FolderB".

  var files = DriveApp.getFolderById('1hjvNIPgKhp2ZKIC7K2kxvJjfIeEYw4BP').searchFiles('title != "nothing"');
  while(files.hasNext()){
    var xFile = files.next();
    var name = xFile.getName();
    if (name.indexOf('.xlsx')>-1){ 
      var ID = xFile.getId();
      var xBlob = xFile.getBlob();
      var newFile = {
        title : name+'_converted',
        parents: [{id: folderBId}] //  Added
      };
      file = Drive.Files.insert(newFile, xBlob, {
        convert: true
      });
      // Drive.Files.remove(ID); // Added // If this line is run, the original XLSX file is removed. So please be careful this.
    }
  }
}

Примечание:

  • Если номерфайлов XLSX велика, время выполнения может быть более 6 минут.
  • О // Drive.Files.remove(ID);, при запуске этого скрипта, пожалуйста, будьте осторожны.Поскольку исходные файлы XLSX полностью удаляются при запуске сценария.Я прокомментировал это.Сначала протестируйте скрипт, используя примеры файлов.

Ссылки:

...