Upload dan Import File Excel ke Database Menggunakan Django dan Django Import Export

Ucoepoe
By -
0

T(caps)erkadang kita perlu mengupload dan mengimport file excel ke database untuk kemudian diproses lagi untuk keperluan spesifik. Menggunakan Django, kegiatan ini dapat dilakukan dengan lebih mudah karena kita dapat menggunakan library yang tersedia sehingga kita tidak perlu menuliskan sintaks dan logika yang rumit. Inilah salah satu kelebihan Django, dimana kita dapat menyelesaikan kasus dengan lebih cepat dengan penulisan kode yang sangat ringkas. 


Pada kesempatan ini, kita akan membuat sebuah django apps untuk mengupload file excel dan langsung memparsing dan mengimportnya ke database. Pada kasus ini, file excel yang diupload tidak disimpan sama sekali pada server, tetapi langsung diimport ke database. Mungkin anda dapat mengganti kondisi ini sesuai dengan kebutuhan anda untuk menghindari hal-hal yang tidak diinginkan.


(toc) #title=(Table of Content)




export-excel-dengan-django-import-export

Upload dan Import File Excel dengan Django Import Export


Tentang Django Import Export

Django-import-export merupakan library django yang dapat digunakan untuk mengimport dan mengexport data dengan fitur yang melimpah. Untuk dokumentasinya sendiri tergolong sangat lengkap, dan dapat diakses melalui link dokumentasinya. Django import export juga dapat diintegrasikan dengan library-library python lainnya sehingga dapat lebih powerfull. Django import export juga mendukung berbagai macam file mulai dari excel, json, csv, dan lainnya yang didukung oleh Tablib.


Requirement

Sebelum anda memulainya, pastikan pada lingkungan kerja python anda sudah terinstall:

  • Django (versi 5.2.6 atau yang lebih baru)
  • Psycopg (sesuaikan dengan kebutuhan database) (versi 3.2.10 atau yang lebih baru)
  • Django-import-export (versi 4.3.10 atau yang lebih baru)
  • Djangorestframework (versi 3.16.1 atau yang lebih baru)
  • Openpyxl (versi 3.1.5 atau yang lebih baru)
  • tablib['xlsx'] (sesuaikan dengan kebutuhan upload file) (versi 3.8.0 atau yang lebih baru) 


Untuk menginstall paket tersebut, anda dapat menjalankan perintah:


 
pip install django psycopg django-import-export djangorestframework openpyxl tablib['xlsx']


Mengatur Config untuk Django-Import-Export

Untuk mengatur konfigurasi django-import-export, anda harus memasukkan import_export ke dalam file Settings.py project Django anda.

 

# settings.py

.......
INSTALLED_APPS = (
    ...
    'import_export',
)
.......


Membuat Model Siswa

Katakanlah kita mempunyai sebuah table siswa yang digunakan untuk menampung data yang akan diimport dari excel. Berikut merupakan contoh model untuk kasus kita kali ini.



# models.py

from django.db import models

class Siswa(models.Model):    
    nis = models.CharField(max_length=10, unique=True)
    nama = models.CharField(max_length=255)
    alamat = keterangan = models.TextField(null=True, blank=True)
    tahun = models.CharField(max_length=15)
    
    def __str__(self):
        return str(self.nis)
    


Menyiapkan ModelResource

Untuk perantara antara django-import-export dengan model, kita membutuhkan sebuah class ModelResource. Class ini berfungsi seperti sebuah Serializer, dimana kita dapat memasukkan function atau method ke dalam class tersebut, bahkan juga mendukung class Meta. Kita perlu membuat file baru bernama resources.py ke dalam django apps kita.



# resources.py

from import_export import resources
from .models import Siswa

class SiswaResource(resources.ModelResource):
    class Meta:
        model = Siswa
        import_id_fields = ['nis',]
        skip_unchanged = True
        use_bulk = True
        



Posting Komentar

0 Komentar

Posting Komentar (0)

#buttons=(Ok, Go it!) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Ok, Go it!