导入excel到datagridview输出附加

时间:2017-03-16 15:45:54

标签: sql-server vb.net visual-studio

我的输出在datagridview中追加当前列,而我想查看excel文件到datagridview的输出。我该怎么办? 我可以获得相同的解决方案,因为我无法在新的datagridview中导入excel文件,要求是将所有excel单元格导入到当前datagridview中的对应。

 Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
    Dim excel As String
    Dim OpenFileDialog As New OpenFileDialog
    Dim conn As OleDbConnection
    Dim dta As OleDbDataAdapter
    DataGridView2.Rows.Clear()
    Dim dts As DataSet
    OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
    OpenFileDialog.Filter = "All Files (*.*)|*.*|Excel files (*.xlsx)|*.xlsx|CSV Files (*.csv)|*.csv|XLS Files (*.xls)|*xls"

    If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then

        Dim fi As New FileInfo(OpenFileDialog.FileName)
        Dim FileName As String = OpenFileDialog.FileName

        excel = fi.FullName
        conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel + ";Extended Properties=Excel 12.0;")
        dta = New OleDbDataAdapter("Select * From [Sheet1$]", conn)
        dts = New DataSet
        dta.Fill(dts, "[Sheet1$]")
        DataGridView2.DataSource = dts
        DataGridView2.DataMember = "[Sheet1$]"
        conn.Close()
        With DataGridView2
            .RowHeadersVisible = False
            .Columns(0).HeaderCell.Value = "Enrollment No"
            .Columns(1).HeaderCell.Value = "Name"
            .Columns(2).HeaderCell.Value = "Sub Name"
            .Columns(3).HeaderCell.Value = "Examination"
            .Columns(4).HeaderCell.Value = "Semester"
            .Columns(5).HeaderCell.Value = "Out of"
            .Columns(6).HeaderCell.Value = "Marks Obtained"
            .Columns(7).HeaderCell.Value = "Grade"

        End With
        DataGridView2.Columns.Item(0).Width = 100
        DataGridView2.Columns.Item(1).Width = 120
        DataGridView2.Columns.Item(2).Width = 100
        DataGridView2.Columns.Item(3).Width = 70
        DataGridView2.Columns.Item(4).Width = 90
        DataGridView2.Columns.Item(5).Width = 50
        DataGridView2.Columns.Item(6).Width = 70
        DataGridView2.Columns.Item(7).Width = 70

        DataGridView2.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter

        With DataGridView2
            .RowHeadersVisible = False
              .Columns(0).HeaderCell.Value = "Enrollment No"
            .Columns(1).HeaderCell.Value = "Name"
            .Columns(2).HeaderCell.Value = "Sub Name"
            .Columns(3).HeaderCell.Value = "Examination"
            .Columns(4).HeaderCell.Value = "Semester"
            .Columns(5).HeaderCell.Value = "Out of"
            .Columns(6).HeaderCell.Value = "Marks Obtained"
            .Columns(7).HeaderCell.Value = "Grade"

        End With
        DataGridView2.Columns.Item(0).Width = 100
        DataGridView2.Columns.Item(1).Width = 120
        DataGridView2.Columns.Item(2).Width = 100
        DataGridView2.Columns.Item(3).Width = 70
        DataGridView2.Columns.Item(4).Width = 90
        DataGridView2.Columns.Item(5).Width = 50
        DataGridView2.Columns.Item(6).Width = 70
        DataGridView2.Columns.Item(7).Width = 70

        DataGridView2.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        With Me.DataGridView2
            .RowsDefaultCellStyle.BackColor = Color.WhiteSmoke
            .AlternatingRowsDefaultCellStyle.BackColor = Color.Lavender
        End With


        MsgBox("Importing Data has been Cancelled")


    End If

End Sub

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

由于excel文件似乎是您要在数据网格中显示的内容,我认为您应该能够像下面这样做。使Datatable成为数据网格的数据源。 IE您的datagridview绑定到您的数据表。

Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click
Dim excel As String
Dim OpenFileDialog As New OpenFileDialog
Dim conn As OleDbConnection
Dim dta As OleDbDataAdapter
DataGridView2.Rows.Clear()
Dim dt As New DataTable
OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
OpenFileDialog.Filter = "All Files (*.*)|*.*|Excel files (*.xlsx)|*.xlsx|CSV Files (*.csv)|*.csv|XLS Files (*.xls)|*xls"

If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then

    Dim fi As New FileInfo(OpenFileDialog.FileName)
    Dim FileName As String = OpenFileDialog.FileName

    excel = fi.FullName
    dim conn as New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel + ";Extended Properties=Excel 12.0;")
    dim dta as new New OleDbDataAdapter("Select * From [Sheet1$]", con
    da.Fill(dt)
    DataGridView2.Datasource = dt

End Sub