CSVHelper和FileHelper不是选项
我有一个.csv导出,我需要检查其结构的一致性,如下面的
参考、日期、条目ID
2015年9月23日星期三
2015年9月23日星期四
XYZ987/2015/09125
QWE456,2016年9月8日,126
我可以使用ReadLine
或RealAllLines
和.Split
,它们给我整个行/列,但我需要选择每一行,然后遍历每个属性(用","分隔(进行格式检查
我在这里遇到了问题。我不能单独列出一行中的每个值进行此检查。它可能是上简单的东西
class Program
{
static void Main(string[] args)
{
string csvFile = @"proof.csv";
string[] lines = File.ReadAllLines(csvFile);
var values = lines.Skip(1).Select(l => new { FirstRow = l.Split('n').First(), Values = l.Split('n').Select(v => int.Parse(v)) });
foreach (var value in values)
{
Console.WriteLine(string.Format("{0}", value.FirstRow));
}
}
}
或者我走错了路,我的搜索涉及拉特定的行或列(而不是检查相关的单个值(
上面的数据样本有一个突出显示的例子:日期是明年,我希望能够证明这个值(只是一个例子,因为它可能在出现错误的任何一列中(
我不能单独列出一行中的每个值
那是因为你在n
上分了两次。一行中的值用逗号(,
(分隔。
我不确定LINQ应该做什么,但就这么简单:
string[] lines = File.ReadAllLines(csvFile);
foreach (var line in lines.Skip(1))
{
var values = line.Split(',');
// access values[0], values[1] ...
}
不是将其作为文本读取,而是由OLEDB对象读取,因此CSV文件的数据将出现在数据表中,您不需要吐出它。
要读取csv文件,您可以使用OLEDB 的这些对象
System.Data.OleDb.OleDbCommand
System.Data.OleDb.OleDbDataAdapter
System.Data.OleDb.OleDbConnection
和
System.Data.DataTable