我有一个浏览按钮代码,当我浏览到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
答案 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)