Javascript Dersleri

Excel Dosyasını JSON Formatına Çevirme

Excel dosyasında yer alan verileri aktarmanız ve işlemeniz gereken durumlar olacak ya da olmuştur. Bu durumda verileri alıp okutmak ve kaydetme işlemi için bir şeyler arıyor oluyoruz. Bu işlemi daha pratik ve güvenli bir şekilde nasıl yapabilirim diye düşündüğümde, dosyayı direkt okutarak JSON formatına çevirirsem sonrasında istediğim gibi işleyebilirim diye düşündüm.

Excel dosyasındaki verileri JSON’a dönüştürmek için SheetJS tarafından sağlanan bir Javascript kütüphanesini kullanacağız. Bu kütüphaneye GitHub üzerinden de ulaşabilirsiniz. Bu kütüphaneyle birlikte excel dosyasını herhangi bir yere yüklemeden JSON formatında çıktı alabileceksiniz. Böylece dosya yüklemeden işlem yapabildiğiniz için, bir nevi güvenlik önlemi almış oluyorsunuz.

HTML Tanımlaması

HTML tanımlaması olarak INPUT ve BUTTON oluşturuyoruz. Bu INPUT için type değerini file yapıyoruz. Ardından bu dosyayı işleme almak için BUTTON oluşturup, onclick ile Javascript işlemlerini başlatıyoruz.

<input type="file" id="excel_dosya " />
<button onclick="yukle()">Yükle</button>  
<br><br>
<textarea id="sonuc" style="display:none;height:500px;width:350px;"></textarea>

Yukarıdaki HTML kodlarını yazdıktan sonra Javascript kütüphanesini de dahil edelim.

<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.5/xlsx.min.js"></script>

Kütüphaneyi sayfaya dahil ettikten sonra Javascript kodlarını yazmaya gelelim.

JAVASCRIPT Tanımlaması

Kütüphaneyi kullanarak, INPUT ile seçilen Excel dosyasını alıp, yükleme işlemi yapmadan JSON formatına çevirmiş olacağız.

function yukle() {
  var files = document.getElementById('excel_dosya').files;
  if(files.length==0){
    alert("Lütfen bir dosya seçiniz.");
    return;
  }
  var filename = files[0].name;
  var extension = filename.substring(filename.lastIndexOf(".")).toUpperCase();
  if (extension == '.XLS' || extension == '.XLSX') {
      excelFileToJSON(files[0]);
  }else{
      alert("Yüklenen dosya Excel formatında olmalıdır.");
  }
}
 
function excelFileToJSON(file){
    try {
      var reader = new FileReader();
      reader.readAsBinaryString(file);
      reader.onload = function(e) {
 
          var data = e.target.result;
          var workbook = XLSX.read(data, {
              type : 'binary'
          });
          var result = {};
          workbook.SheetNames.forEach(function(sheetName) {
              var roa = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
              if (roa.length > 0) {
                  result[sheetName] = roa;
              }
          });
          // JSON Sonucunu Textarea’ya yaz
          var resultEle=document.getElementById("sonuc ");
          resultEle.value=JSON.stringify(result, null, 4);
          resultEle.style.display='block';
          }
      }catch(e){
          console.error(e);
      }
}

Yukarıdaki kodlarla birlikte, seçilen Excel dosyasındaki verileri JSON formatına çevirip, Textarea içerisine yazdırmış olduk. Tabi sonuç işlemini yönetmek size kalmış. Örnekteki gibi textarea içerisine verileri atıp sonrasında bu textarea’yı POST ederek verileri işleyebilirsiniz. Tabi yapacağınız işlemler size kalmış.

Çalışma Sistemi

Yukarıda yer alan kodların nasıl işlem sağladığını aşağıdan detaylı bir şekilde görebilirsiniz.

  • İlk olarak HTML formundan gelen veride, dosya seçilmiş mi, seçilmişse de Excel dosyası mı? Sorularına cevap bulmak için yukle() fonksiyonunu kullandık.
  • ExcelFileToJSON() fonksiyonu, yüklenen Excel dosyasını okumak ve verileri JSON formatına dönüştürmek için tanımlanmıştır.
  • ExcelFileToJSON() fonksiyonu içerisinde yer alan readAsBinaryString() fonksiyonu, Excel dosyasında yer alan verileri okumak üzerine görevlendirildi.
  • Ardından, ikili dizimizi bir JSON nesnesine dönüştürmek için yerleşik bir özelliği olan XLSX’i kullandık. utils.sheet_to_row_object_array() fonksiyonu, çalışma kitabını yineleyerek döngüdeki her bir veri sayfasını okuması için kullandık.
  • JSON sonucunu güzelleştirmek ve görüntülemek için stringify(result, null, 4) fonksiyonunu kullandık ve sonuç almış oluyoruz.

Yaptığımız bu kodlarla birlikte Excel dosyasını seçerek içerisinde verileri JSON formatına kolaylıkla çevirebilirsiniz. Yaptığımız işleme ait ekran görüntülerine de aşağıdan ulaşabilirsiniz.

Excel Dosyasını JSON Formatına Çevirme Excel Dosyasını JSON Formatına Çevirme

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir