LANG SELRCT

コードを書く場所についてはこちら

2019年4月29日月曜日

Googleドライブのフォルダ内のドキュメントからテキストを取得したい(並べ替える)


Googleドライブのフォルダ内のドキュメントからテキストを取得したい
ではシンプルに取得するコードを書きたくて並べ替えまではやりませんでしたが、ここでは並び替えるところまで書きました。



コード.gs
/************************************
フォルダ内のファイルを取得して
ファイル名で昇順に並べ替えて
ファイルIDたちの配列を返す
************************************/
function getFileArray() {
  var folderId = "ID";
  var fileArray = [];
  var files = getFiles(folderId);
  for(var i = 0; i < files.length; i++) {
    var name = files[i]['name'];
    var id = files[i]['id'];
    var text = files[i]['text'];
    fileArray.push([name, id, text]);
  }
  Logger.log(fileArray);
}

/************************************
フォルダ内のファイルを取得して
昇順にして返す
************************************/
function getFiles(folderId) {
  var fileProps = [];
  var folder = DriveApp.getFolderById(folderId);
  var contents = folder.getFiles();
  while(contents.hasNext()) {
    var file = contents.next();
    var name = file.getName();
    var id = file.getId();
    var text = getDocText(id);
    var obj = {};
    obj["name"] = name;
    obj["id"] = id;
    obj["text"] = text;
    fileProps.push(obj);
  }
  var sorted = objSort(fileProps);
  return fileProps;
}

/************************************
ドキュメントのテキストを取得する
************************************/
function getDocText(id) {
  var doc = DocumentApp.openById(id);
  var text = doc.getBody().getText();
  return text;
}

/************************************
並べ替える
************************************/
function objSort(fileProps) {
  var ascending = fileProps.sort(asc);
  return ascending;
}

/************************************
nameで昇順に並べ替える
************************************/
function asc(a, b){
  var A = a.name;
  var B = b.name;
  if(A > B){
    return 1;
  }else if(A < B ){
    return -1;
  }else{
   return 0;
  }
}



関連記事
Googleドライブのフォルダ内のドキュメントからテキストを取得したい
Googleドライブ内のファイルをファイル名で並べ替えて取得したい