使用不带列标题的数据从excel导入的数据集填充二维数组
我正在尝试使用不带列标题的数据从excel导入的数据集填充数组。我的代码如下:使用不带列标题的数据从excel导入的数据集填充二维数组,excel,vb.net,dataset,oledb,Excel,Vb.net,Dataset,Oledb,我正在尝试使用不带列标题的数据从excel导入的数据集填充数组。我的代码如下: Dim conn As OleDbConnection Dim dta As OleDbDataAdapter Dim dts As DataSet Dim excel As String Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Try Dim OpenFileDia
Dim conn As OleDbConnection
Dim dta As OleDbDataAdapter
Dim dts As DataSet
Dim excel As String
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Try
Dim OpenFileDialog As New OpenFileDialog
With OpenFileDialog
.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
.Filter = "All Files (*.*) | *.*"
If .ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
Dim fi As New IO.FileInfo(.FileName)
Dim FileName As String = .FileName
excel = fi.FullName
Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & excel & ";Extended Properties=""Excel 12.0 Xml;HDR=NO;IMEX=1"""
conn = New OleDbConnection(connString)
dta = New OleDbDataAdapter("Select * from [Sheet1$]", conn)
dts = New DataSet
dta.Fill(dts, "[Sheet1$]")
Dim arrCol0 As Double() = (From myRow In dts.Tables(0).AsEnumerable
Select myRow.Field(Of Double)("[A]")).ToArray
conn.Close()
End If
End With
Catch ex As Exception
MsgBox(ex.Message)
conn.Close()
Exit Sub
End Try
End Sub
“选择myRow.Field(双精度)(“[A]”)中的[A]似乎是必需的。是否有排除列标题的方法?您可以根据
数据表中的列数和行数创建数组,然后按列索引和行索引遍历数据表和数组,例如
Dim arr(table.Columns.Count - 1, table.Rows.Count - 1) As Double
For columnIndex = 0 To arr.GetUpperBound(0)
For rowIndex = 0 To arr.GetUpperBound(1)
arr(columnIndex, rowIndex) = CDbl(table.Rows(rowIndex)(columnIndex))
Next
Next
使用序数。类似于:dim thecolumnidex as integer=1 dim arrCol0=dts.Tables(0).AsEnumerable().Select(函数(r)Convert.ToDouble((r(columnidex))).ToArray()
或r.Field(双精度)(columnidex)
可以。顺便说一句,如果您只需要一个数据表,请填写一个数据表而不是数据集。谢谢Jimi。数据表比数据集有什么好处?您使用的是数据表。您对数据集不做任何操作。因为您实际上不使用数据表,所以添加开销是没有用的:只填写一个数据表。