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

时间:2014-04-08 23:16:43

标签: vb.net excel csv

我发现如何用多种语言执行此操作,但不能在.net(特别是vb.net)中执行此操作。我正在使用OLeDbCommand读取CSV和Excel文件。在Excel的情况下,我可以通过指定一系列单元格跳过第一行并选择第二行。但是在CSV的情况下,我不知道该怎么做。 当前代码如下:

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

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

1 个答案:

答案 0 :(得分:1)

根据我的经验,阅读这样的文本文件是非常严格的。它只允许您读取整个文件,因为您无法指定表名。您最好阅读每一行并制作表格行并将其添加到表格中。如果第一行是标题,您可以使用它来创建列,否则硬编码列。

这是一个简单的小方法,用.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