CSV (Excel로 열림) 파일을 읽고 데이터베이스에 레코드를 저장해야합니다. 내가하고있는 일은 먼저 문자열 배열로 모든 라인을 읽고 DataTable에 데이터를로드 한 다음 데이터베이스에 푸시합니다. 일부 필드는 쉼표가 있으며 쉼표로 필드를 분할하기 때문에 문제가 발생합니다. CSV는 고객으로부터 얻는 것이며 내가 형식을 올바르게 지정하도록 요구할 권한이 없습니다. 이 문제를 해결하는 방법에 대한 아이디어?쉼표로 구분 된 CSV에서 쉼표로 필드를 읽는 방법은 무엇입니까?
코드 :
Dim dt As New DataTable
Dim fields() As String
Dim lines() As String = File.ReadAllLines(fileName)
'Create headers
lines(1) = lines(1).Replace(Chr(34), "")
For Each header As String In lines(1).Split(",")
dt.Columns.Add(header)
Next
'Fill data
For i As Integer = 1 To lines.Count() - 1
fields = lines(i).Split(",")
dt.Rows.Add(fields)
Next
샘플 데이터 행 :
540,TestName,**$2,136.02**,0.15%,8004310/01
그래서이 6 개 값에 나누기가 불행하게도 5
분할 (그것처럼 나던 바로 그겁니다, Excel에서, 필드는 따옴표로 둘러싸여)() - 상기 쉼표에 보내고하는 것은 CSV 데이터를 읽을 수있는 끔찍한 방법입니다. 대신 Microsoft.VisualBasic.TextFieldParser, FastCSV, LinqToCSV 등과 같이 전용 CSV 파서를 찾아야합니다. –
동의합니다. 나는 이것들을 살펴보고 CSV를 효율적으로 읽으려고 노력할 것이다. – voddy
효과가있었습니다! HasFieldsEnclosedInQuotes = True로 시도했습니다. – voddy