Ekspor DataGridView VB.Net ke Ms. Excell

Ekspor DataGridView VB.Net ke Ms. Excell

Jumpa lagi dengan tips, trik dan teknik seputar IT, pada kesempatan ini akan berbagi bagaimana caranya mengekspor data dari database yang ditampilkan di DataGridView dari aplikasi yang kita buat di .Net bisa di export file berformat xlsx atau file Microsoft Excel. Pertama-tama alat perang yang kita order antara lain:
  • Library Microsoft.Office.Interop.Excel yang agan-agan bisa download di sini 
  • IDE Visual studio dan cangkir kopi
Pertama-tama kita buat database terlebih dahulu, bisa database sql atau Ms.Access keduanya sama saja, yang berbeda hanya pada sintaks koneksi databasenya. Disini sebagai contoh kita gunakan MS.Access , seperti yang ditunjukan gambar dibawah ini. Saya membuat database  bernama dbjnm  dengan tabel bernama  barang  dengan field-field sebagaimana berikut:

ekspor-vb-ke-xlsx-1
Rancangan database
Kemudian kita buka Visual studio dan buat sebuah proyek baru dengan bentuk aplikasi Windows form, yang kemudian kita tambahkan sebuah tombol, DataGridview untuk menampilkan data dari database, dan sebuah saveFileDialog seperti gambar di bawah ini:

ekspor-vb-ke-xlsx-2
Formulir

Selanjutnya tekan F7 dan copas listing koneksi database berikut

Mengimpor  System.Data.OleDb
Formulir Kelas Umum1  
    Dim Conn As OleDbConnection
    Dim cmd As OleDbCommand
    Dim da As OleDbDataAdapter
    Dim ds As New DataSet
    Dim dr As OleDbDataReader
    Dim LokasiDB As String
    Sub Koneksi()
        LokasiDB = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=dbjnm.accdb"
        Conn = New OleDbConnection(LokasiDB)
        If Conn.State = ConnectionState.Closed Then Conn.Open()
    End Sub

End Class

Ada baiknya bila kita sering menggunakan sebuah kumpulan perintah seperti listing koneksi diatas dapat kita buatkan modul tersendiri, sehingga mudah dipanggil dari class manapun. Sesudah itu kita save dan file database yang tadi kita buat, kita pindahkan ke folder ./bin/debug dari project kita,yang selanjutnya kembali ke visual studio form1 design, click 2x pada form, dan copas code dibawah ini:

    Private Sub Form1_Load(sender As Object, e As EventArgsHandles MyBase.Load
        Koneksi()
        da = New OleDbDataAdapter("Select * from barang", Conn)
        ds = New DataSet
        ds.Clear()
        da.Fill(ds, "barang")
        DataGridView1.DataSource = (ds.Tables("barang"))
        DataGridView1.Enabled = True
        Conn.Close()
    End Sub

Dari sini database sudah dapat ditampilkan bila kita start aplikasi yang kita buat bersamaan dengan dimuatnya form1, bila ada kesulitan khususnya database Accsess jangan lupa check Target CPU nya  sebaiknya x86 pada tab Compile di Project Properties seperti yang pernah kita bahas di artikel sebelumnya.
Selanjutnya kita masukan Library Microsoft.Office.Interop.Excel ke project kita dengan cara click kanan pada nama project di solution explorer dan pilih Properties yang akan menampilkan jendela properties yang selanjutnya pilih tab References dan click tombol add seperti gambar dibawah


ekspor-vb-ke-xlsx-3
Menambahkan library ke project

Yang mana akan menampilkan jendela reference manager, yang selanjutnya kita click tombol browse dan arahkan ke folder dimana agan mengextract library Microsoft.Office.Interop.Excel.dll tersebut, selanjutnya cukup pilih file tersebut click Ok dan kembali ke Form1 design. Sesudahnya kita tekan tombol F7 untuk menampilkan jendela kode, untuk membuat fungsi excel dan release object dengan cukup mencopas listing code berikut ini:

    Sub excel()
        Dim xlApp As Microsoft.Office.Interop.Excel.Application
        Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
        Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value
        Dim i As Integer
        Dim j As Integer

        xlApp = New Microsoft.Office.Interop.Excel.ApplicationClass
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets("sheet1")


        For i = 0 To DataGridView1.RowCount - 2
            For j = 0 To DataGridView1.ColumnCount - 1
                For k As Integer = 1 To DataGridView1.Columns.Count
                    xlWorkSheet.Cells(1, k) = DataGridView1.Columns(k - 1).HeaderText
                    xlWorkSheet.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString()
                Next
            Next
        Next
        SaveFileDialog1.Filter = "XLSX Files (*.xlsx)|*.xlsx"
        If SaveFileDialog1.ShowDialog = System.Windows.Forms.DialogResult.OK Then xlWorkSheet.SaveAs(SaveFileDialog1.FileName)
        xlWorkBook.Close()
        xlApp.Quit()

        releaseObject(xlApp)
        releaseObject(xlWorkBook)
        releaseObject(xlWorkSheet)

    End Sub
    Private Sub releaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try

    End Sub

Selanjutnya kita kembali ke Form1, click 2x pada tombol Button1 dan ketik perintah untuk memanggil fungsi export ke excel tersebut, seperti code berikut:

    Private Sub Button1_Click(sender As Object, e As EventArgsHandles Button1.Click
        excel()
    End Sub

Lalu   kita start untuk jalankan programnya, maka data di GridView akan dapat disimpan dalam format excel setelah kita meng click button1 (tombol yang disediakan) seperti gambar dibawah:


ekspor-vb-ke-xlsx-4
Hasil export ke xlsx

Untuk source code lengkapnya seperti dibawah ini:

DATA HOSTED WITH ♥ BY PASTEBIN.COM - DOWNLOAD RAW - SEE ORIGINAL
  1. Imports System.Data.OleDb
  2. Public Class Form1
  3.     Dim Conn As OleDbConnection
  4.     Dim cmd As OleDbCommand
  5.     Dim da As OleDbDataAdapter
  6.     Dim ds As New DataSet
  7.     Dim dr As OleDbDataReader
  8.     Dim LokasiDB As String
  9.     Sub Koneksi()
  10.         LokasiDB = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=dbjnm.accdb"
  11.         Conn = New OleDbConnection(LokasiDB)
  12.         If Conn.State = ConnectionState.Closed Then Conn.Open()
  13.     End Sub
  14.  
  15.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  16.         Koneksi()
  17.         da = New OleDbDataAdapter("Select * from barang", Conn)
  18.         ds = New DataSet
  19.         ds.Clear()
  20.         da.Fill(ds, "barang")
  21.         DataGridView1.DataSource = (ds.Tables("barang"))
  22.         DataGridView1.Enabled = True
  23.         Conn.Close()
  24.     End Sub
  25.     Sub excel()
  26.         Dim xlApp As Microsoft.Office.Interop.Excel.Application
  27.         Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
  28.         Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
  29.         Dim misValue As Object = System.Reflection.Missing.Value
  30.         Dim i As Integer
  31.         Dim j As Integer
  32.  
  33.         xlApp = New Microsoft.Office.Interop.Excel.ApplicationClass
  34.         xlWorkBook = xlApp.Workbooks.Add(misValue)
  35.         xlWorkSheet = xlWorkBook.Sheets("sheet1")
  36.  
  37.  
  38.         For i = 0 To DataGridView1.RowCount - 2
  39.             For j = 0 To DataGridView1.ColumnCount - 1
  40.                 For k As Integer = 1 To DataGridView1.Columns.Count
  41.                     xlWorkSheet.Cells(1, k) = DataGridView1.Columns(- 1).HeaderText
  42.                     xlWorkSheet.Cells(+ 2, j + 1) = DataGridView1(j, i).Value.ToString()
  43.                 Next
  44.             Next
  45.         Next
  46.         SaveFileDialog1.Filter = "XLSX Files (*.xlsx)|*.xlsx"
  47.         If SaveFileDialog1.ShowDialog = System.Windows.Forms.DialogResult.OK Then xlWorkSheet.SaveAs(SaveFileDialog1.FileName)
  48.         xlWorkBook.Close()
  49.         xlApp.Quit()
  50.  
  51.         releaseObject(xlApp)
  52.         releaseObject(xlWorkBook)
  53.         releaseObject(xlWorkSheet)
  54.  
  55.     End Sub
  56.     Private Sub releaseObject(ByVal obj As Object)
  57.         Try
  58.             System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
  59.             obj = Nothing
  60.         Catch ex As Exception
  61.             obj = Nothing
  62.         Finally
  63.             GC.Collect()
  64.         End Try
  65.  
  66.     End Sub
  67.  
  68.     Private  Sub  Button1_Click ( Pengirim  Sebagai  Obyek , e  Sebagai  EventArgs )  Menangani  Button1 . klik
  69.         unggul ( )
  70.     Akhir  Sub
  71.  Kelas Akhir


Demikian tutorial cara mengexport DataGridView dari database ke file berformat xlsx (MS.Excel), semoga bermanfaat..

Tidak ada komentar:

Comments

Popular posts from this blog

Font Notasi Angka Untuk membuat Partitur Lagu Not Angka

Download Berbagai Font Notasi Angka Terbaik dan Cara Penulisan di MS Word

16+ Font dan Kode untuk Membuat Simbol Musik di Word