Tips and tricks for .NET using ASP and VB code.

Create a data table from a CSV file.

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.Size = New System.Drawing.Size(640, 480)
        Dim DataGridView1 As New DataGridView
        DataGridView1.Location = New System.Drawing.Point(0, 0)
        DataGridView1.Size = New System.Drawing.Size(635, 445)
        DataGridView1.Anchor = 15
        Me.Controls.Add(DataGridView1)
        Dim CsvTable As New Data.DataTable
        Dim Filename As String = "C:\Temp\Temp1.csv"
        Dim Fields As String()
        Dim Delimiter As String = ","
        Using Parser As New Microsoft.VisualBasic.FileIO.TextFieldParser(Filename)
            Parser.SetDelimiters(Delimiter)
            While Not Parser.EndOfData
                Fields = Parser.ReadFields()
                If CsvTable.Columns.Count = 0 Then
                    'This code presumes the first line of data contains the column names.
                    For Each Field As String In Fields
                        Dim ColumnName As String = Field
                        While CsvTable.Columns.Contains(ColumnName)
                            ColumnName = Val(ColumnName) + 1 & "-" & Field
                        End While
                        CsvTable.Columns.Add(ColumnName, System.Type.GetType("System.String"))
                    Next
                Else
                    Dim NewDataRow As Data.DataRow = CsvTable.NewRow
                    For i As Integer = 0 To Math.Min(CsvTable.Columns.Count - 1, Fields.Length - 1)
                        NewDataRow.Item(i) = Fields(i)
                    Next i
                    CsvTable.Rows.Add(NewDataRow)
                End If
            End While
        End Using
        DataGridView1.DataSource = CsvTable
        DataGridView1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)
        DataGridView1.AutoResizeColumns()
    End Sub

No comments:

Post a Comment

Search This Blog