Ekspor DataGridView VB.Net ke Ms. Excell
- Get link
- X
- Other Apps
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:
![]() |
| Rancangan database |
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 EventArgs) Handles 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
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 EventArgs) Handles 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:
Untuk source code lengkapnya seperti dibawah ini:
- Imports System.Data.OleDb
- Public Class Form1
- 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
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles 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
- 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
- Private Sub Button1_Click ( Pengirim Sebagai Obyek , e Sebagai EventArgs ) Menangani Button1 . klik
- unggul ( )
- Akhir Sub
- Kelas Akhir
Demikian tutorial cara mengexport DataGridView dari database ke file berformat xlsx (MS.Excel), semoga bermanfaat..
- Get link
- X
- Other Apps




Tidak ada komentar:
tulis komentar