How to read a CSV file into a .NET Datatable

后端 未结 22 2139
野性不改
野性不改 2020-11-22 05:12

How can I load a CSV file into a System.Data.DataTable, creating the datatable based on the CSV file?

Does the regular ADO.net functionality allow this?

22条回答
  •  一生所求
    2020-11-22 05:58

    I came across this piece of code that uses Linq and regex to parse a CSV file. The refering article is now over a year and a half old, but have not come across a neater way to parse a CSV using Linq (and regex) than this. The caveat is the regex applied here is for comma delimited files (will detect commas inside quotes!) and that it may not take well to headers, but there is a way to overcome these). Take a peak:

    Dim lines As String() = System.IO.File.ReadAllLines(strCustomerFile)
    Dim pattern As String = ",(?=(?:[^""]*""[^""]*"")*(?![^""]*""))"
    Dim r As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(pattern)
    Dim custs = From line In lines _
                Let data = r.Split(line) _
                    Select New With {.custnmbr = data(0), _
                                     .custname = data(1)}
    For Each cust In custs
        strCUSTNMBR = Replace(cust.custnmbr, Chr(34), "")
        strCUSTNAME = Replace(cust.custname, Chr(34), "")
    Next
    

提交回复
热议问题