使用没有列 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