Удаление дублирующихся строк из всех таблиц в папке с помощью скриптов API Google - PullRequest
0 голосов
/ 25 апреля 2018

https://developers.google.com/apps-script/articles/removing_duplicates Эта ссылка показывает удаление повторяющихся строк из определенной таблицы. У меня есть папка и подпапки на диске goolge. Я хочу удалить повторяющиеся строки из каждой отдельной электронной таблицы в папке и всех подпапках. Вкратце, процедура в ссылке должна быть повторена для всех таблиц в указанной папке. Как это можно сделать с помощью цикла?

1 Ответ

0 голосов
/ 25 апреля 2018

Чтобы перебрать файлы в одной папке, вы должны сделать что-то вроде этого. Вы можете изменить это, чтобы включить подпапки, но в настоящее время это не так.

 function listFilesInFolder(folderName) {
  //modified from https://ctrlq.org/code/19854-list-files-in-google-drive-folder
  var folder = DriveApp.getFoldersByName(folderName).next();
  var contents = folder.getFiles();

  for (var i = 0; i < contents.length; i++) {

    file = contents[i];

    if (file.getFileType() == "SPREADSHEET") {
      removeDuplicate(file.getId()); //get the ID and run the remove duplicates script on that particular ss   
    }        

  }

};

Вы бы изменили оригинальный скрипт на что-то вроде этого.

function removeDuplicates(ssid) {
var ss = SpreadsheetApp.openById(ssid);//now opening the various ss by ID
 SpreadsheetApp.setActiveSpreadsheet(ss); //and making them the active ss
  var data = sheet.getDataRange().getValues();
  var newData = new Array();
  for(i in data){
    var row = data[i];
    var duplicate = false;
    for(j in newData){
      if(row.join() == newData[j].join()){
        duplicate = true;
      }
    }
    if(!duplicate){
      newData.push(row);
    }
  }
  sheet.clearContents();
  sheet.getRange(1, 1, newData.length, newData[0].length)
      .setValues(newData);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...