比较两个csv文件的特定列

时间:2012-08-09 09:58:45

标签: c# csv

我有两个csv文件,每个文件有18列...我希望用c#将第一个文件的第一列与第二个文件的第一列和第一个第三列的第三列进行比较第二个,当找到差异时,我想保存到另一个文件,所以第三个文件应该有两列作为输出。所以我需要告诉哪个是第一列,哪个是第三列然后比较。

任何建议我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

基础知识是逐行读取每个文件,然后拆分每个字符串。对于CSV文件,您通常使用逗号作为分隔符,但这也可以是制表符或类似的字符。所以使用你拥有的那个。然后你得到类似的东西

        string line;
        System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.csv");
        while ((line = file.ReadLine()) != null)
        {
            var arr = line.Split(new char[] { ',' });
            // do your comparison
        }

虽然你需要打开2个文件。然后,您可以将文件1中的数组与文件2中的数组进行比较(索引到数组==列,从0开始)。 Smilarly,您可以使用String.Join再次创建输出。

答案 1 :(得分:0)

将2张Excel工作表浏览到2 Datatable。比较2个表,如果存在差异则将其放入新表中。

最后将表导出到Excel。