Terlebih dahulu buat prosedur ExportToExcel()
Public Sub exportToExcel(ByVal sfd As FileDialog, ByVal dgv As DataGridView)
Try
sfd.Title = "Export to Excel Workbook"
sfd.Filter = "Excel Workbook (*.xlsx)|*.xlsx| Excel 97-2003 Workbook (*.xls)|*.xls"
sfd.ShowDialog()
If sfd.FileName = "" Then
Exit Sub
End If
Dim xls As New Excel.Application
Dim book As Excel.Workbook
Dim sheet As Excel.Worksheet
xls.Workbooks.Add()
book = xls.ActiveWorkbook
sheet = book.ActiveSheet
Dim j As Integer = 1
For Each Cols As DataGridViewColumn In dgv.Columns
If Cols.Visible Then
sheet.Cells(1, j).Value = Cols.HeaderText
j += 1
End If
Next
Dim row As Integer = 2
Dim col As Integer = 1
For Each rows As DataGridViewRow In dgv.Rows
If rows.Visible = True Then
For i As Integer = 0 To dgv.ColumnCount - 1
If dgv.Columns(i).Visible Then
sheet.Cells(row, col) = rows.Cells(i).Value
col = col + 1
End If
Next
row += 1
col = 1
End If
Next
book.SaveAs(sfd.FileName)
xls.Workbooks.Close()
xls.Quit()
Dim strFile As String = sfd.FileName
Dim process As New Process()
process.StartInfo.Verb = "runas"
process.StartInfo.UseShellExecute = True
If MsgBox("Export to Excel Workbook Success." & vbCr & "Do you want to open this file ?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Export to Excell") = MsgBoxResult.Yes Then
process.Start(strFile)
End If
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "btnExportToExcel_Click()")
End Try
End Sub
selanjutnya panggil procedure tersebut :
Private Sub btnExportToExcelWorkbook_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExportToExcelWorkbookToolStripMenuItem.Click
If Me.DataGridView1.RowCount > 0 Then
Call exportToExcel(SaveFileDialog1, DataGridView1)
End If
End Sub
Tidak ada komentar:
Posting Komentar