ユーザーがスプレッドシートをアップロードし、ヘッダー行のシート名と行番号を指定するアプリがあります。私は、指定された行から列名を抽出するために、アプリケーションが必要です。私は一番上の行を返すように働くことができました。どのように私は、ExcelファイルからSystem.Data.OleDb
でテーブルを選択する方法はありません、私は行にする必要がありますしたい列名(x)は私の知る限りではADOとVB.netを使用してExcelの特定の行から列ヘッダーを取得
Dim ExcelConn As System.Data.OleDb.OleDbConnection
Dim ExcelTable As DataTable = Nothing
Dim dr As DataRow
Dim sheet_found As Boolean = False
ExcelConn = New system.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & file & ";Extended Properties=Excel 12.0;")
End If
'open the file
ExcelConn.Open()
ExcelTable = ExcelConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "Table"})
'make sure there is a matching sheet name
For Each dr In ExcelTable.Rows
If dr("TABLE_NAME").ToString() = sheet & "$" Then
sheet_found = True
Exit For
End If
Next
If sheet_found = False Then
MesgBox("the sheet name specified in the header (" + sheet + ") was not found")
ExcelConn.Close()
Exit Sub
Else
Dim sheet_name As String = Nothing
sheet_name = "[" & sheet & "$]"
Dim cmd1 As New System.Data.OleDb.OleDbCommand("Select * From " & sheet_name, ExcelConn)
Dim da As New OleDbDataAdapter("Select * From " & sheet_name, ExcelConn)
Dim ds As DataSet = New DataSet()
Dim dc As DataColumn
da.Fill(ds)
For Each dc In ds.Tables(0).Columns 'this returns col names fine from first row. how would i tell it to get names from 2nd or 3rd row, etc. The integer var is passed in. i just need to know how to specify that it is row(x)
header_row = LCase(RTrim(header_row + "|" + dc.ColumnName))
Next
MsgBox(header_row)
ExcelConn.Close()
End If