使用VB中的/ Excel数据填充DataGrid列

时间:2012-03-26 16:59:10

标签: vb.net visual-studio-2010 excel ado.net oledb

好吧,我终于让这段代码工作了几个小时:

        Dim path As String = OpenFileDialog1.FileName
        Dim myDataset As New DataSet()
        Dim strConn = New OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=" & path & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""")
        Dim myData As New OleDb.OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn)
        myData.Fill(myDataset)
        DataGridView1.DataSource = myDataset.Tables(0).DefaultView

现在我想出来,我将尝试将数据放在特定位置。在我的应用程序中,我有一个设置有4列的datagridview。我想要做的是将excel文件的A列放在datagridview的第1列和datagridview的第2列中Excel文件的C列下。

所以替换:

    DataGridView1.DataSource = myDataset.Tables(0).DefaultView

使用:

    DataGridView1.columns(0) = myDataset.Tables(0).columns(0)
    DataGridView1.columns(1) = myDataset.Tables(0).columns(2)

显然这不起作用,有些东西告诉我,我可能需要一个for循环来导入数据,但我从来没有从Excel文件中导入信息并使其变得更糟我以前从未使用过datagridviews所以我没有想法如何解决这个问题。

如果可以的话,我想做这样的事情:

        For x = 1 To xldoc.rows.length - 1
            DataGridView1.Item(0, x).Value = CType(xlDoc.Cells(0, x + 1), Excel.Range).Text
        Next

2 个答案:

答案 0 :(得分:2)

最终导致数据导入变得更加容易。我发布这个以防其他人遇到这个帖子。

    If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        xLApp = New Excel.Application
        xLBook = xLApp.Workbooks.Open(OpenFileDialog1.FileName)
        xLSheet = xLBook.Worksheets("Sheet1")
        For x = 1 To xLSheet.UsedRange.Rows.Count - 1
            DataGridView1.Rows.Add()
            DataGridView1.Item(0, x - 1).Value = xLSheet.Cells(1 + x, 1).value
            DataGridView1.Item(1, x - 1).Value = xLSheet.Cells(1 + x, xLSheet.UsedRange.Columns.Count).value
        Next
    End If

不要打扰:

    Dim myDataset As New DataSet()
    Dim strConn = New OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=" & path & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""")
    Dim myData As New OleDb.OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn)

答案 1 :(得分:0)

将其视为粗略,如下所示:

  • Excel工作簿=数据库

  • Excel工作表=表

  • 每个Excel列=表列

  • 每个Excel行=表格行

  • Excel单元格=特定行中的特定列值

如果您的Excel有列标题,那么这些是您的字段名称。现在更改SQL查询以选择所需的列并照常绑定。