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

时间:2013-05-13 09:58:43

标签: vb.net excel

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

2 个答案:

答案 0 :(得分:0)

试试这个

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

答案 1 :(得分:0)

我不推荐Rachel Gallens解决方案 - 确定它有效,但它有很多问题: 它使用Interop - 这种技术非常慢,容易出错,在服务器场景中无法做到。 此外,Interop界面很容易就绪了10年 - 当你遇到高级问题时,你最终会处理一个复杂的,没有很好记录的迷宫。

我建议使用EPPLUS:它是afree库,可以动态创建xlsx文件,速度非常快。 正如您在这里看到的:您只需要一行代码: Export DataTable to excel with EPPlus