用c#语言编写的CSV阅读器。它工作正常,但我无法忽略双引号行值之间的逗号(',')。
实施例: “aa”,“aa,bb”,“cc”
它读起来像
Col1 Col2 Col3 Col4
aa aa bb cc
而不是这个应该读起来像,
Col1 Col2 Col3
aa aabb cc
这是我的代码:
public void LoadFile(String path)
{
Table.Rows.Clear();
Table.Columns.Clear();
StreamReader file = File.OpenText(path);
String[] header = file.ReadLine().Split(',');
for (int i = 0; i < Table.ColumnCount; i++)
{
Table.Columns[i].Name = "Col " + i;}
String row = "";
while ((row = file.ReadLine()) != null)
{
Table.Rows.Add(row.Split(','));
}
file.Close();
}
}
答案 0 :(得分:3)
您可以通过使用正则表达式拆分功能
替换拆分功能来解决此问题Table.Rows.Add(row.Split(','));
应替换为
Table.Rows.Add(Regex.Split(row, ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)"));
在顶部添加装配
using System.Text.RegularExpressions;
这将解决您的问题