如何读取CSV文件并在Visual Basic 2010中以网格显示结果?这听起来很简单,但谷歌搜索了一段时间后仍然找不到答案.我在表单上有DataGridView,它叫做DataGridView1.我有一个只有3列数据的csv,我希望能够显示它们.
使用.Net框架中内置的TextFieldParser类.
以下是Paul Clement 在MSDN论坛帖子中复制的一些代码.它将CSV转换为新的内存中DataTable,然后将DataGridView绑定到DataTable
Dim TextFileReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Documents and Settings\...\My Documents\My Database\Text\SemiColonDelimited.txt") TextFileReader.TextFieldType = FileIO.FieldType.Delimited TextFileReader.SetDelimiters(";") Dim TextFileTable As DataTable = Nothing Dim Column As DataColumn Dim Row As DataRow Dim UpperBound As Int32 Dim ColumnCount As Int32 Dim CurrentRow As String() While Not TextFileReader.EndOfData Try CurrentRow = TextFileReader.ReadFields() If Not CurrentRow Is Nothing Then ''# Check if DataTable has been created If TextFileTable Is Nothing Then TextFileTable = New DataTable("TextFileTable") ''# Get number of columns UpperBound = CurrentRow.GetUpperBound(0) ''# Create new DataTable For ColumnCount = 0 To UpperBound Column = New DataColumn() Column.DataType = System.Type.GetType("System.String") Column.ColumnName = "Column" & ColumnCount Column.Caption = "Column" & ColumnCount Column.ReadOnly = True Column.Unique = False TextFileTable.Columns.Add(Column) Next End If Row = TextFileTable.NewRow For ColumnCount = 0 To UpperBound Row("Column" & ColumnCount) = CurrentRow(ColumnCount).ToString Next TextFileTable.Rows.Add(Row) End If Catch ex As _ Microsoft.VisualBasic.FileIO.MalformedLineException MsgBox("Line " & ex.Message & _ "is not valid and will be skipped.") End Try End While TextFileReader.Dispose() frmMain.DataGrid1.DataSource = TextFileTable