Appscript / Google Sheet · June 27, 2023 0

Menampilkan List File Di Folder Google Drive ke Google Sheets

Dari salah satu group ada sebuah pertanyaan, bagaimana caranya menampilkan list File yang ada pada folder Google Drive.

Tentunya untuk menyelsaikan kasus ini, tidak ada rumus bawaan google sheets yang bisa digunakan, karena itu solusi yang paling mungkin adalah dengan membuat Macro atau Apps Script pada google sheets.

Menampilkan List File Dari Folder Google Drive dengan Apps Script

Seperti yang sudah dibahas sebelumnya, untuk menampilkan list file yang ada pada Folder Google Drive ke dalam Google Sheets bisa menggunakan Apps Script. Karena itu disini saya akan membuat script untuk menampilkan list File berdasarkan Folder ID yang ditentukan.

Untuk menambahkan script, seperti biasa pada google sheets bisa masuk melalui menu Extentions kemudian pilih Apps Script.

Setelah jendela Apps Script editor terbuka, pastekan script dibawah ini.

function ambilFile() {
  var sh = SpreadsheetApp.getActiveSheet();
  var folder = DriveApp.getFolderById('IsiDenganFolderID'); 
  var files = folder.getFiles();

  var list = [];
  list.push(['Name','ID','Size']);
 
  while (files.hasNext()){
      file = files.next();
      var row = []
      row.push(file.getName(),file.getId(),file.getSize())
      list.push(row);
  }
  sh.getRange(2,2,list.length,list[0].length).setValues(list);
}

Jika dijalankan script diatas akan menghasilkan 3 kolom Nama, ID dan Size yang disimpan dimulai dari kolom B Baris ke 2

Untuk Contoh lainnya, jika yang dibutuhkan hanyalah Nama File saja, script bisa dibuat seperti dibawah ini.

function ambilNamaSaja() {
  var sh = SpreadsheetApp.getActiveSheet();
  var folder = DriveApp.getFolderById('IsiDenganFolderID'); 
  var files = folder.getFiles();

  // Tulis judul kolom
  sheet.getRange('A1').setValue('Nama File');
  sheet.getRange('B1').setValue('URL File');
  
  var row = 2;
  
  while (files.hasNext()) {
    var file = files.next();
    sheet.getRange('A' + row).setValue(file.getName());
    sheet.getRange('B' + row).setValue(file.getUrl());
    row++;
  }
}

Looping Folder Dalam Range

Untuk contoh lainnya, bagaimana melakukan perulangan pada folder ID yang ada pada kolom A dan hasilnya semua list file ingin disimpan dalam cells disebelahnya.

Scriptnya bisa dibuat seperti dibawah ini.

function ambilFile(namaFolder, baris) {
  var sh = SpreadsheetApp.getActiveSheet();
  var folder = DriveApp.getFolderById(namaFolder); 
  var files = folder.getFiles();
  
  var list = [];
  while (files.hasNext()){
      file = files.next();
      var row = []
      row.push(file.getName())
      list.push(row);
  }
   sh.getRange(baris,2).setValue(list.join("\n"));
}

Selanjutnya lakukan proses pengulangan pada folder ID yang ada di kolom A dengan looping for.

function prosesFolder(){
 var sh = SpreadsheetApp.getActiveSheet();
 for (var i=2; i<=10; i++) {
    ambilFile (sh.getRange(i,1).getValue(),i)
  }
}

Jalankan prosesFolder dan hasilnya akan menjadi seperti ini.

Seperti itulah cara yang bisa dilakukan untuk menampilkan list file didalam folder google drive kedalam google sheet dengan bantuan Apps Script.