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

Kumpulan Source Code Greenfoot

Algorithma Coretan Abstrak dengan HTML5 Canvas

Game TicTacToe dengan Greenfoot

Cara Membuat Halaman HTML Sederhana

Kode Greenfoot Game Snake Sederhana

Honeycomb Style Wallpaper dengan HTML5 Canvas

Ganti Kartu ATM BNI yang Rusak

Tips Agar Website Anda Segera di Terima oleh Google Adsense dan di-Monetize

Selamatan Latar Glundengan Bubuk Banyuwangi

Menggunakan JSON di Netbeans 8.2