Какой самый простой способ скомпилировать кучу файлов из одного листа в большую электронную таблицу? - PullRequest
0 голосов
/ 07 ноября 2019

Итак, мой вопрос: если у меня есть несколько файлов листов Google в одной папке, как лучше всего по сценарию копировать все эти отдельные листы в электронную таблицу компиляции с листом вчто для каждого из этих файлов копируется? Я пишу это вручную для каждого файла прямо сейчас, но я уверен, что есть более быстрый способ использования циклов с [0] [1] для разных имен файлов, но я не знаю, как это сделать. Любая помощь будет оценена.

function ArrayBuilder() {
    var filesource = DriveApp.searchFiles('title contains "X" and parents in "File_ID"');
    while(filesource.hasNext()){
        var File = filesource.next();
        var ID = File.getId();
    }
    var name = File.getName()
    var source = SpreadsheetApp.openById(ID);
    var sheet = source.getSheets()[0];
    var destinationID = "File_ID";
    var destination = SpreadsheetApp.openById(destinationID);

     sheet.copyTo(destination).setName(name); 

    var filesource = DriveApp.searchFiles('title contains "Y" and parents in "File_ID"');
    while(filesource.hasNext()){
        var File = filesource.next();
        var ID = File.getId();
    }
    var name = File.getName()
    var source = SpreadsheetApp.openById(ID);
    var sheet = source.getSheets()[0];
    var destinationID = "File_ID";
    var destination = SpreadsheetApp.openById(destinationID);

     sheet.copyTo(destination).setName(name); 
    }

1 Ответ

0 голосов
/ 08 ноября 2019

Вы можете использовать следующий код:

var DESTINATION_SPREADSHEET_ID = '';
var PARENT_FOLDER_ID = '';

function buildMasterSpreadsheet() {
  var destinationSpreadsheet = SpreadsheetApp.openById(DESTINATION_SPREADSHEET_ID);
  var searchQuery = Utilities.formatString("'%s' in parents and mimeType = 'application/vnd.google-apps.spreadsheet'", PARENT_FOLDER_ID);
  var sourceFiles = DriveApp.searchFiles(searchQuery);

  while(sourceFiles.hasNext()){
    var file = sourceFiles.next();
    var sourceSheet = SpreadsheetApp.openById(file.getId()).getSheets()[0];
    sourceSheet.copyTo(destinationSpreadsheet).setName(file.getName());
  }
}

Конечно, вам придется установить переменные сверху на соответствующие значения. Этот скрипт будет:

  • Искать файлы типа Sheets и PARENT_FOLDER_ID у их родителей.
  • Для каждого из найденных файлов:
    • Скопируйте первый лист в электронную таблицу назначения.

Вы также можете добавить любые другие предложения, которые могут вам понадобиться, в поисковый запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...