将gridview值导出到vb.net中的.xlsx文件中

将gridview值导出到vb.net中的.xlsx文件中,vb.net,excel,Vb.net,Excel,我想创建一个应用程序,在其中我可以将所需的gridview结果导出到一个新的excel文件中。如果同名文件已存在,则它将要求提供新名称,否则将创建新文件。请尝试此操作 Private Sub ButtonExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonExport.Click Dim rowsTotal, colsTotal As Short Dim

我想创建一个应用程序,在其中我可以将所需的gridview结果导出到一个新的excel文件中。如果同名文件已存在,则它将要求提供新名称,否则将创建新文件。

请尝试此操作

Private Sub ButtonExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)   Handles ButtonExport.Click
    Dim rowsTotal, colsTotal As Short
    Dim I, j, iC As Short
    System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
    Dim xlApp As New Excel.Application
    Try
        Dim excelBook As Excel.Workbook = xlApp.Workbooks.Add
        Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
        xlApp.Visible = True
        rowsTotal = DataGridView1.RowCount - 1
        colsTotal = DataGridView1.Columns.Count - 1
        With excelWorksheet
            .Cells.Select()
            .Cells.Delete()
            For iC = 0 To colsTotal
                .Cells(1, iC + 1).Value = DataGridView1.Columns(iC).HeaderText
            Next
            For I = 0 To rowsTotal - 1
                For j = 0 To colsTotal
                    .Cells(I + 2, j + 1).value = DataGrid1.Rows(I).Cells(j).Value
                Next j
            Next I
            .Rows("1:1").Font.FontStyle = "Bold"
            .Rows("1:1").Font.Size = 10
            .Cells.Columns.AutoFit()
            .Cells.Select()
            .Cells.EntireColumn.AutoFit()
            .Cells(1, 1).Select()
        End With
    Catch ex As Exception
        MsgBox("Export Excel Error " & ex.Message)
    Finally
        'RELEASE ALLOACTED RESOURCES
        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
        xlApp = Nothing
    End Try
End Sub

我不推荐Rachel Gallens解决方案-当然它是有效的,但它有很多问题: 它使用互操作——这是一种非常缓慢、容易出错且在服务器场景中不可能实现的技术。 此外,互操作界面很容易使用10年——当您遇到高级问题时,您最终将处理一个复杂且没有很好文档记录的迷宫

我建议使用EPPLUS:它是一个免费的库,可以动态创建xlsx文件,速度非常快。 正如您在这里所看到的:您所要做的只是一行代码:

另外,请查看此链接是否已签出请参阅此链接可能会有所帮助它正在工作。。但在这里,我必须明确地保存excel文件。但我想用我提供的名称将其保存到一个特定的文件夹中。