将datagridview导出到Excel

时间:2018-08-01 12:12:41

标签: excel datagridview export

我正在开发中。我正在尝试在vb.net中开发Windows窗体应用程序,以帮助我的部门。 我有一个带有datagridview的表单,每个表单中都有关于几个部门的信息。部门代码在第一列中。我想要的是将每个部门的几列导出到Excel工作簿。每个部门必须导出到一个独立的工作簿。我已经惊呆了,但是我所能做的就是将所有列和所有行导出到一本工作簿中。 感谢先进。 对不起,我的英语。

这是我的第一个代码

    If ((DataGridView1.Columns.Count = 0) Or (DataGridView1.Rows.Count = 0)) Then
        Exit Sub
    End If

    'Creating dataset to export
    Dim dset As New DataSet
    'add table to dataset
    dset.Tables.Add()
    'add column to that table
    For i As Integer = 0 To DataGridView1.ColumnCount - 1
        dset.Tables(0).Columns.Add(DataGridView1.Columns(i).HeaderText)
    Next
    'add rows to the table
    Dim dr1 As DataRow
    For i As Integer = 0 To DataGridView1.RowCount - 1
        dr1 = dset.Tables(0).NewRow
        For j As Integer = 0 To DataGridView1.Columns.Count - 1
            dr1(j) = DataGridView1.Rows(i).Cells(j).Value
        Next
        dset.Tables(0).Rows.Add(dr1)
    Next

    Dim excel As New Microsoft.Office.Interop.Excel.Application
    Dim wBook As Microsoft.Office.Interop.Excel.Workbook
    Dim wSheet As Microsoft.Office.Interop.Excel.Worksheet

    wBook = excel.Workbooks.Add()
    wSheet = wBook.ActiveSheet()

    Dim dt As System.Data.DataTable = dset.Tables(0)
    Dim dc As System.Data.DataColumn
    Dim dr As System.Data.DataRow
    Dim colIndex As Integer = 0
    Dim rowIndex As Integer = 0

    For Each dc In dt.Columns
        colIndex = colIndex + 1
        excel.Cells(1, colIndex) = dc.ColumnName
    Next

    For Each dr In dt.Rows
        rowIndex = rowIndex + 1
        colIndex = 0
        For Each dc In dt.Columns
            colIndex = colIndex + 1
            excel.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
        Next

    Next

    wSheet.Columns.AutoFit()
    Dim strFileName As String = "D:\ss.xls"
    Dim blnFileOpen As Boolean = False
    Try
        Dim fileTemp As System.IO.FileStream = System.IO.File.OpenWrite(strFileName)
        fileTemp.Close()
    Catch ex As Exception
        blnFileOpen = False
    End Try

    If System.IO.File.Exists(strFileName) Then
        System.IO.File.Delete(strFileName)
    End If

    wBook.SaveAs(strFileName)
    excel.Workbooks.Open(strFileName)
    excel.Visible = True

There is an exemple of my data

Pedro Afoito

图片在链接中

0 个答案:

没有答案