VB.Net - 使用“浏览”按钮后选择Excel工作表

时间:2015-05-26 14:49:14

标签: vb.net excel datagridview

我有一个浏览按钮代码,当我浏览到Excel文件时,我希望能够手动选择该文件的特定工作表,以便我可以将该特定工作表导入Datagridview。 我正在尝试使用组合框或列表框。

我的计划是使用“浏览”按钮填充文本框,然后通过该文本框选择工作表,然后将其导入Datagridview进行审阅,然后再将其导出到SQL数据库表。

我必须编写浏览按钮的代码,我可以将文件导入到dataviewgrid,然后将其导出到SQL。但仅当Excel文件具有单个“预定义”工作表名称时。 我需要在浏览之后但在Datagridview导入之前选择工作表。 这是我的浏览按钮代码。我猜它是简单的采取,必须首先加载文件。

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim fd As OpenFileDialog = New OpenFileDialog()
    Dim strFileName As String

    fd.Title = "Open File Dialog"
    fd.InitialDirectory = "H:\COST ACCTG\Inventory\"
    fd.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"
    fd.FilterIndex = 2
    fd.RestoreDirectory = True

    If fd.ShowDialog() = DialogResult.OK Then
        strFileName = fd.FileName
    End If

    TextBox1.Text = strFileName

End Sub

1 个答案:

答案 0 :(得分:0)

获取Excel电子表格的路径后,您可以设置连接字符串并找出存在的表格(表格),并将每个表格添加到组合框中以供选择:

Dim excelConnectionString as string
Dim  mySheets as Datatable
Dim myConnection as OleDB.OleDBConnection

Try
    excelConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=" & _
        excelPath & "; Extended Properties = ""Excel 12.0 Xml;HDR=Yes;IMEX=1"""

    myConnection = New OleDBConnection(excelConnectionString)
    myConnection.Open()

    mySheets = myConnection.GetOleDbSchemaTable(OleDB.OleDbSchemaGuid.Tables, Nothing)

    For Each row as DataRow in mySheets.Rows
        ComboboxExcelSheetsToImport.Items.Add(row("TABLE_NAME")
    Next row

Catch ex as Exception
    'Exception Handling
End Try

选择所需的表(工作表)后,您可以使用包含所选Excel工作表的SQL语句来引入数据。下面的错误示例:

myCommand = new OleDb.OleDbCommand("SELECT * FROM [" & selectedSheet & "]", myConnection)