DataGridView导出到Excel

    技术2024-06-13  69

    Imports Excel = Microsoft.Office.Interop.Excel'Excel,代码可按该名称而不是完全限定字符串来引用 namespace。

    Module ModExcel    Sub CreateWorkbook(ByRef dgv As DataGridView, ByVal filePath As String, ByVal strExcelName As String)        Dim excelApp As Excel.Application = Nothing        Dim wkbk As Excel.Workbook        Dim sheet As Excel.Worksheet        Dim i As Integer        Dim j As Integer        Dim prbExporDate As FrmProcessBar

            Try            excelApp = New Excel.Application            wkbk = excelApp.Workbooks.Add()            sheet = CType(wkbk.Sheets.Add(), Excel.Worksheet)            sheet.Name = strExcelName            '' Write a column of values.            prbExporDate = New FrmProcessBar

                With dgv                For i = 1 To .ColumnCount - 1                    sheet.Cells(1, i) = .Columns(i).HeaderCell.Value                Next                With prbExporDate                    .PrbExport.Minimum = 0                    .PrbExport.Maximum = dgv.RowCount - 1                    '.LblProcess.Text = "正在导出,请稍等。。。"                    .Refresh()                    .Show()                End With                For j = 0 To .RowCount - 1                    prbExporDate.PrbExport.Value = j                    For i = 1 To .ColumnCount - 1                        If IsDBNull(.Rows(j).Cells(i).Value) = False Then                            '注意:.Value.toString 如果原Value is null 引发nullreferenceexception                            '异常                            sheet.Cells(j + 2, i) = .Rows(j).Cells(i).Value                        End If                    Next                Next            End With            prbExporDate.Visible = False            excelApp.DisplayAlerts = False            Dim folderPath = My.Computer.FileSystem.GetParentPath(filePath)            If Not My.Computer.FileSystem.DirectoryExists(folderPath) Then                My.Computer.FileSystem.CreateDirectory(folderPath)            End If            wkbk.SaveAs(filePath)        Catch ex As Exception            MessageBox.Show(ex.ToString, "ExportData Error!", _            MessageBoxButtons.OK, MessageBoxIcon.Error)        Finally            sheet = Nothing            wkbk = Nothing            ' Close Excel.            excelApp.Quit()            excelApp = Nothing            prbExporDate = Nothing        End Try    End Sub

    End Module

    最新回复(0)