使用没有列 headers 的数据从从 excel 导入的数据集填充二维数组
Populate a 2D array from a dataset imported from excel using data without column headers
我正在尝试使用没有列 headers 的数据从从 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 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
"Select myRow.Field(Of Double)("[A]")" 中的 [A] 似乎是必需的。有没有办法排除列标题?
您将根据 DataTable
中的列数和行数创建数组,然后您将通过列索引和行索引遍历 DataTable
和数组,例如
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
我正在尝试使用没有列 headers 的数据从从 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 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
"Select myRow.Field(Of Double)("[A]")" 中的 [A] 似乎是必需的。有没有办法排除列标题?
您将根据 DataTable
中的列数和行数创建数组,然后您将通过列索引和行索引遍历 DataTable
和数组,例如
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