Melakukan exporting data kedalam bentuk Excel File dapat dilakukan dengan mudah menggunakan library ClosedXML.dll, namun data yang dapat di proses secara otomatis hanya berupa DataSet. Seperti pada syntax berikut ini.
Using wb As New XLWorkbook
wb.Worksheets.Add(mDataSet)
wb.SaveAs("Test.xlsx")
End Using
Lalu bagaimana jika kita ingin mengexport data excel tersebut langsung dari data yang di tampilkan di DataGridView?.
Pada Artikel kali ini, kita akan membuat sebuah fungsi yang dapat mengkonversi data yang di representasikan dalam DataGridView menjadi excel file.
advertisement
Kita langsung saja ke tutorialnya.
- Download ClosedXml.dll di Nuget Manager. Caranya di menu bar visual studio klik Project - Manage Nuget Package. Pilih tab Browser kemudian di kolom pencarian tulis ClosedXml kemudian Install, seperi gambar berikut.
- Buat sebuah Module dengan nama ModuleHelper, kemudian paste syntax berikut.
Imports ClosedXML.Excel Module ModuleHelper Sub ExportDgvToExcel(ByVal dgv As DataGridView) Try If dgv Is Nothing OrElse dgv.RowCount <= 0 Then MsgBox("The Data is empty!!!") Exit Sub End If Dim sfdExcel As SaveFileDialog = New SaveFileDialog sfdExcel.Filter = "Excel File|*.xlsx" sfdExcel.Title = "Save an Excel File" sfdExcel.ShowDialog() If sfdExcel.FileName = "" Then MsgBox("Please Type File Name") Exit Sub End If Dim wb As XLWorkbook = New XLWorkbook wb.AddWorksheet(Format(Now, "dd MMM yy")) Dim ws = wb.Worksheet(Format(Now, "dd MMM yy")) For Each column As DataGridViewColumn In dgv.Columns ws.Cell(1, column.Index + 1).Value = column.HeaderText With ws.Cell(1, column.Index + 1).Style .Font.Bold = True .Alignment.Horizontal = XLAlignmentHorizontalValues.Center .Border.OutsideBorder = XLBorderStyleValues.Thin .Fill.BackgroundColor = XLColor.LightGreen End With ws.RowHeight = dgv.ColumnHeadersHeight Next For Each row As DataGridViewRow In dgv.Rows For Each cell As DataGridViewCell In row.Cells ws.Cell(cell.RowIndex + 2, cell.ColumnIndex + 1).Value = cell.Value.ToString Next Next wb.SaveAs(sfdExcel.FileName) If MsgBox("Do You Want To Open File", vbQuestion + vbYesNo, "Question?") = vbYes Then Process.Start(sfdExcel.FileName) End If Catch ex As Exception MessageBox.Show(ex.Message) 'WriteErrorLog("sub saveExcelFile Form7--> Error saat export data") End Try End Sub End Module
Sekarang kita sudah dapat mengeksport data yang ada di dalam DataGridView menggunakan fungsi ExportDgvToExcel. Cara kerjanya sebenernya sederhana, hanya membaca setiap kolom yang ada di DataGridView yang ingin di export kemudian memasukannya ke baris pertama di Excel File yang di buat menggunakan ClosedXml tadi, kemudian membaca setiap baris dan nilai setiap cellnya dan memasukannya ke baris ke 2 to N di cell excel.
Kemudian untuk menggunkan fungsi yang tadi sudah kita buat yaitu seperti berikut
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ExportDgvToExcel(Me.DataGridView1) ' Cara ganti dengan nama DataGridView kalian
End Sub
advertisement
Sekian dulu tutorial cara export DataGridView ke dalam Excel File. Jangan lupa di share jika kalian merasa artikel ini bermanfaat, dan jangan lupa tinggalkan jejak dengan berkomentar dibawah ini. File projectnya bisa kalian download di sini.
Note: Data cell DataGridView tidak bisa berupa gambar ataupun control tertentu, hanya boleh Angka ataupun Huruf. Next tutorial kita akan modifikasi fungsi tersebut agar bisa mengekspor gambar.
Silahkan berkomentar dengan baik dan bijak!