【问题标题】:Export Excel file data to Datatable将 Excel 文件数据导出到数据表
【发布时间】:2018-06-13 10:35:48
【问题描述】:

我想知道是否有推荐的方法来使用 VB.NET 将 Excel 文件 (.xlsx) 的数据导入数据表,但不知道 Excel 文件的结构。换句话说,用户将下载一个没有一致性的 Excel 文件。标头可能从 C1 而不是 A1 开始。任何东西都可以在任何地方,并且 Excel 文件不会遵循特定的结构。我在 Internet 上找到的所有示例似乎都假定 Excel 文件没有空格、没有合并,并且所有数据在行和列之间平均分配。

对于任何可能循环遍历整个 Excel 文件、获取文本并将其粘贴到数据表中的库有什么建议吗?

我正在使用 SQL,并且已经过测试,这方面是可以的。

【问题讨论】:

  • 您好!欢迎来到堆栈溢出。我看你是这里的新手。请抽出 5 分钟的宝贵时间来 this tour 了解这里的工作原理。
  • 感谢您的指导
  • 想想你会如何回应被要求写下手动执行创建数据表任务的步骤给定的约束“任何东西都可以在任何地方并且 Excel 文件不会遵循具体结构”,您将有一个问题的基础。如果您可以完成此任务,请编辑您的问题以包含此过程,然后我们可以开始讨论编程解决方案。
  • 这是事实。任何东西都可以在任何地方。我不确定你想让我怎么装饰它。就是这个问题,如果实在回答不上可以关闭删除。
  • 让发件人填写特定表格可能会更容易:-)

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


【解决方案1】:

你能不能只做一个select *,这样吗?

Imports System.Data
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim MyConnection As System.Data.OleDb.OleDbConnection
            Dim DtSet As System.Data.DataSet
            Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
            MyConnection = New System.Data.OleDb.OleDbConnection _
            ("provider=Microsoft.Jet.OLEDB.4.0;"  _
            " Data Source='c:\testfile.xls'; " _
             "Extended Properties=Excel 8.0;")
            MyCommand = New System.Data.OleDb.OleDbDataAdapter _
                ("select * from [Sheet1$]", MyConnection)
            MyCommand.TableMappings.Add("Table", "TestTable")
            DtSet = New System.Data.DataSet
            MyCommand.Fill(DtSet)
            DataGridView1.DataSource = DtSet.Tables(0)
            MyConnection.Close()
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub
End Class

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-27
    • 2017-03-27
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 2015-08-05
    • 2010-09-19
    相关资源
    最近更新 更多