首页 > 解决方案 > 比较两个 csv 文件并使用 C# 导出 XLS 中的差异

问题描述

我必须找出两个 CSV 文件之间的差异,并在 excel 文件(增量文件)中突出显示差异(红色)。我正在做的是将 csv 文件读入数组

string Delta = System.IO.Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.Parent.FullName + "\\Reports\\Delta\\";
var sourceFile = File.ReadAllLines(sourceReportDir + "\\" + sourcefName);
var targetFile = File.ReadAllLines(targetReportDir + "\\" + sourcefName);

var diffSourceFromTarget = FindDifferences(sourceFile, targetFile);
var diffTargetFromSource = FindDifferences(targetFile, sourceFile);

if(diffSourceFromTarget.Length > 0 || diffTargetFromSource.Length > 0)
{
    List<string> diffs = new List<string>();
    diffs.Add(sourceFile[0]);

    diffs.AddRange(diffSourceFromTarget);
    diffs.AddRange(diffTargetFromSource);

    deltaFileCreate.CreateDelta(sourcefName, diffs);
}

private static string[] FindDifferences(string[] linesFirst, string[] linesSecond)
{
    return (from line1 in linesFirst
    let isLineEqual = linesSecond.Any(line2 => line1 == line2)
    where isLineEqual == false
    select line1).ToArray();
}


public void CreateDelta(string sourceFileName, List<string> csvDifference)
{
    string deltaDir = Delta + "\\" + System.DateTime.Now.ToString("yyyyddMM_HHmmss");
    Directory.CreateDirectory(deltaDir);
    File.WriteAllLines(deltaDir + "\\" + "Delta_" + sourceFileName, csvDifference);
}

但是,这只是将差异写入文件。有人可以帮我将增量写入 Excel 表中所有突出显示 RED 差异的行。

标签: c#

解决方案


推荐阅读