如何比较两个excel表格,并在c#中创建一个新的

本文关键字:创建 一个 并在 excel 比较 何比较 两个 表格 | 更新日期: 2023-09-27 18:13:02

我有两个excel文件。
sheet1有5列值
sheet2只有一列
Sheet1和工作表的第一列有一些独特的值。我需要另一个excelsheet,其中新的有5列(在sheet1和sheet2中匹配唯一值)如何使用C#做到这一点?

如何比较两个excel表格,并在c#中创建一个新的

您可以通过使用Interop来做到这一点。Excel (Interop c#教程)或一些替代Interop(如ClosedXML)。读入文件并使用LINQ获取所需的数据。IEnumerable。除了可以从sheet1中取出不在sheet2中的元素,并将其放入新工作表并将其保存到excel文件中。

var workbook1 = new XLWorkbook(@"workbook1.xlsx");
var workbook2 = new XLWorkbook(@"workbook2.xlsx");
var worksheet1 = workbook.Worksheet("sheet1");
var worksheet2 = workbook.Worksheet("sheet2");
var listSheet1 = new List<IXLRow>(); // list of Rows
var listSheet2 = new List<IXLRow>();
// puts all UsedRows (including "headers") from sheet1 into a list of rows
using (var rows = worksheet1.RowsUsed())
{
  foreach (var row in rows)
  {
    listSheet1.Add(row);
  }
}
using(var rows = worksheet2.RowsUsed())
{
  foreach (var row in rows)
  {
    listSheet2.Add(row);
  }
}
IEqualityComparer comparer = new XLRowComparer(); // you have to implement your own comparer here. there's a lot of tutorials/samples out there
var uniqueIdList = listSheet1.Intersect(listSheet2, comparer).ToList(); // in this case I'd use intersect instead of except which returns the IDs provided in sheet1 and sheet2
// and now you just have to put the rows from uniqueIdList into a new worksheet and save it
相关文章: