【发布时间】:2018-04-10 14:10:12
【问题描述】:
我想知道将 CSV 解析为 DataTable 的最佳选择是什么。
我的 CSV 是这种格式
分隔符:逗号
分隔符:双引号(例如“字符串”)
转义:2x 双引号
示例如下:
Col1,Col2,Col3,Col4 1234,active,”这是一个带有换行符、逗号和所有字符的长文本”, XGF232 1235,active,"这也是一个“长”的文本,换行和全部”,XHD233- 问题是数字还是短;一个单词字符串不包含在引号内。
- 另一个问题是用引号括起来的长字符串也有嵌套的“字符串”被“字符串”转义。
PS:Excel 可以毫无问题地理解这种格式。
编辑:
cmets 为我指出了不同的选择。我搜索了可用的库,发现 LumenWorks.Framework.IO.Csv 似乎可以完美地完成这项工作。
Using csv As CsvReader = New CsvReader(New StreamReader(filename), True)
Dim fieldCount = csv.FieldCount
Dim headers() As String = csv.GetFieldHeaders()
dt.Load(csv)
End Using
【问题讨论】:
-
使用库。 CsvHelper 非常受欢迎。
-
我不会认为符合 CSV 规则的文档有问题 :) - 您期待什么样的答案?
-
我试图使用带有拆分的循环,但这带来了某些问题,我认为我可以解决,但这变得太复杂了,我相信有更好的方法。现在正在查看 CSVHelper。
-
DataTable 通常不是最后一站 - 如果目的地是 DB,很多会直接导入
-
你可以试试 oledb - stackoverflow.com/questions/6813607/…