Setelah membahas bagaimana proses import dari excel, sekarang kita coba membuat bagaimana export data dari database MySQL ke file excel.
Proses yang akan kita buat adalah menampilkan data di gridview kemudian dengan menekan button data akan export ke file excel. Tabel data yang akan kita gunakan dan cara menampilkan di grid sama dengan artikel Menampilkan Data di Grid, dengan sedikit modifikasi pada UI sebagai berikut:
Code masih sama dengan penambahan yang ditandai dengan highlight kuning.
Imports MySql.Data.MySqlClient
Imports System.Data
Public Class Form1
Dim conn As MySqlConnection
Dim myCommand As New MySqlCommand
Dim myAdapter As New MySqlDataAdapter
Dim myData As New DataTable
Dim SQL As String
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
conn = New MySqlConnection()
conn.ConnectionString = "server=localhost;user id=root;" & _
"password=;database=latihan"
Try
conn.Open()
SQL = "Select kodekategori, namakategori From kategori"
myCommand.Connection = conn
myCommand.CommandText = SQL
myAdapter.SelectCommand = myCommand
myAdapter.Fill(myData)
grdData.DataSource = myData
conn.Close()
grdData.AllowUserToAddRows = False
grdData.AllowUserToDeleteRows = False
grdData.Columns(0).ReadOnly = True
grdData.Columns(1).ReadOnly = True
Catch myerror As MySqlException
MessageBox.Show("Error: " & myerror.Message)
Finally
conn.Dispose()
End Try
End Sub
'Dengan penambahan code di event Button1_Click
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
If grdData.RowCount > 0 Then
'Deklarasi Object
Dim ApExcel As Object
'Set sebagai excel object
ApExcel = CreateObject("Excel.application")
'Menyembunyikan proses excel
ApExcel.Visible = False
'Membuat/menambah workbook baru
ApExcel.Workbooks.Add()
'Lebar Kolom
ApExcel.Columns(1).ColumnWidth = 15
ApExcel.Columns(2).ColumnWidth = 20
'Tulis nama kolom ke excel
For i As Integer = 1 To grdData.Columns.Count
ApExcel.Cells(1, i).Value = grdData.Columns(i - 1).Name
Next
'Tulis data ke excel
For r = 0 To grdData.RowCount - 1
For i As Integer = 1 To grdData.Columns.Count
ApExcel.Cells(r + 2, i).Value = grdData.Rows(r).Cells(i - 1).Value
Next
Next
'Membuat Font Bold
ApExcel.Range("A1:B1").Font.Bold = True
'Memberi warna backgound
ApExcel.Range("A1:B1").interior.colorindex = 36
'Agar nilai cell yang panjang menjadi beberapa baris
ApExcel.Range("A2:B" & grdData.RowCount + 1).WrapText = True
'Membuat border hitam
ApExcel.Range("A1:B" & grdData.RowCount + 1).Borders.Color = RGB(0,0,0)
ApExcel.Visible = True
ApExcel = Nothing
End If
End Sub
End Class
Runtime:
Hasil export excel:
Click here if you like this article.
7 Comments
supaya prosesnya keliatan gan
misal id 112233 --> '112233
Nanti di excel nya dianggap text dan kutip satu di depan itu ga bakal kelihatan