读取excel CSV文件时跳过第一行

我发现如何做到这一点在几种语言,但不是在.net(特别是VB.NET)。 我正在使用OLeDbCommand来读取CSV和Excel文件。 在Excel的情况下,我可以跳过第一行,并通过指定一个单元格范围select第二行。 但在CSV的情况下,我不知道如何做到这一点。 目前的代码如下所示:

Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM [" + Path.GetFileName(FileName) + "]", cn) 

在这里,我们给的文件,而不是表。 所以我有点卡住了。

从我的经验来看,像这样的文本文件是非常严格的。 它只允许你阅读整个文件,因为你不能指定一个表名。 你可能会更好地阅读每一行,并build立表格行并将其添加到表格中。 如果第一行是标题,您可以使用它来创build列,否则硬编码列。

下面是一个简单的小方法,用.csv文件中的数据填充数据表,您应该可以使用:

 Private Sub GetData(ByRef dt As DataTable, FilePath As String, Optional ByVal Header As Boolean = True) Dim Fields() As String Dim Start As Integer = CInt(Header) * -1 If Not File.Exists(FilePath) Then Return End If dt.Clear() Dim Lines() As String = File.ReadAllLines(FilePath) If CBool(Start) AndAlso dt.Columns.Count = 0 Then Lines(0) = Lines(0).Replace(Chr(34), "") For Each h As String In Lines(0).Split(",") dt.Columns.Add(h) Next End If For I = Start To Lines.Count - 1 Fields = Lines(I).Split(",") dt.Rows.Add(Fields) Next End Sub