Konversi Google Sheets ke Excel dengan Apps Script

Untuk keperluan input nilai Software OBE (Outcome-Based Education) buatan Prof. Agus Naba, yang beralamat di http://anaba.lecture.ub.ac.id/obesoftware/, ternyata diperlukan perubahan susunan data file input excelnya.

Hal ini dimungkinkan karena perubahan output nilai dari Sistem Akademik Universitas, yang semula tidak menyertakan persamaan, menambahkan baris pertama sebagai baris persamaan, dan data nilai-nilai mahasiswa baru dimulai pada baris kedua.


Selain itu, juga diperlukan penambahan sheet Bobot NA, CLO dan PLO setiap file nilai, untuk keperluan penambahan input ke perhitungan.

Karena Prof. Agus Naba belum sempat membuat perbaikan, sehingga file excel input yang seharusnya memiliki susunan seperti Spreadsheet template di link ini, untuk sementara hanya dirubah dengan menghilangkan baris rumus dan memasukkan bobot masing-masing variabel penilaian pada sheet kedua.

Langkah mudahnya, yaitu dengan membuat Spreadsheet dengan menduplicate Spreadsheet template di atas, yang diisi oleh nilai-nilai mahasiswa pada sheet pertama, dan memasukkan bobot assessment yang dihitung manual dan di manajemen sesuai table gambar di bawah ini.


Kemudian setelah file Spreadsheet telah di generate, file tersebut di konversi ke bentuk Excelnya menggunakan kode Apps Script berikut:
function getFileAsBlob(exportUrl){
 let response = UrlFetchApp.fetch(exportUrl, {
     muteHttpExceptions: true,
     headers: {
       Authorization: 'Bearer ' +  ScriptApp.getOAuthToken(),
     },
   });
 return response.getBlob();
}

function sheetToExcel()
{
  var ss = SpreadsheetApp.openById("idsheemanajemen");//sheet target untuk
  var so=ss.getSheetByName("Daftar");
  var data=so.getRange("A2:J").getValues().map(function(row,index){
    if(row[8]!="" && row[9]==""){
      row.push(index);
    }
    return (row[8]!="" && row[9]=="")?row:null}).filter(function(cellData){return cellData != null;});
  
  if(data.length>0)for(var i=0;i<data.length;i++){
    var foldertarget="";
    if(data[i][0]=="Ganjil 2021")foldertarget="idfolder1";//Ganjil 2021
    else if(data[i][0]=="Genap 2021")foldertarget="idfolder2";//Genap 2021
else if(data[i][0]=="Ganjil 2022")foldertarget="idfolder3";//Ganjil 2022
var blob=getFileAsBlob("https://docs.google.com/feeds/download/spreadsheets/Export?key="+data[i][8]+"&exportFormat=xlsx"); var f=DriveApp.createFile(blob); f.moveTo(DriveApp.getFolderById(foldertarget)); f.setName(data[i][1]+".xlsx"); so.getRange(2+parseInt(data[i][10]),10,1,2).setValues([[f.getId(),f.getUrl()]]); console.log(data[i][1]); } }

Sehingga secara garis besar, yang penulis lakukan adalah membuat file Google Sheet dari masing-masing output nilai Sistem Akademik per matakuliah, sesuai template dan mengkonversinya lagi ke bentuk Excel menggunakan kode di atas, untuk diolah pada Software OBE Prof. Agus Naba.

Komentar



Postingan populer dari blog ini

Apps Script untuk Cetak Sertifikat

Kebodohan Karyawan Menyalahkan Sistem

Kode Apps Script MailApp untuk Form Mengirimkan Email

Checking Data yang Belum Dimasukkan dalam Daftar Menggunakan Query Google Sheet

Generate Karakter Acak dan Menempatkannya di Sel Google Sheets dengan Apps Script

Menyembunyikan Failed Load Images di Blogger

Algorithma Bilangan Prima dengan Javascript

Apps Script untuk Mengirimkan Notifikasi Approval

Mencoba Submit Theme di Wordpress.org

Menghapus Baris di Google Sheets yang Memiliki Sel Kosong dengan Apps Script