c# - 比较两个 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 差异的行。
解决方案
推荐阅读
- .net - 连接到 VPN 时,带有 Windows 容器的 Docker for Windows 无法正常工作
- java - 异步数据库查询的返回值
- amazon-web-services - 有没有办法对 DynamoDB 的 Lambda 函数的结果进行排序?
- git - git log 如何隐藏提交信息
- reactjs - 使用 React 更新 SVG 文件中的图层
- php - 尽管在我调试时路由存在,但无法为路由生成 URL
- php - 在 Symfony 4.x 及更高版本中使用 Themeforest.net 的主题
- c - Proteus 8.6 + C 编程语言 - 通过常规按钮显示 LED 按钮 [已解决]
- oauth-2.0 - 如何撤销 Discord OAuth2.0 中的令牌?
- docker - Docker nginx 服务不接受连接,而单个副本接受