1
我有兩個excel
文件。
sheet1
具有5列與值。
sheet2
只有一列。
工作表1和工作表的第一列有一些唯一值。 我需要一個又一個excelsheet
,其中新的有5列(匹配的唯一值在工作表Sheet1都和sheet2)如何做到這一點使用C#
?
任何幫助,將不勝感激。如何比較兩個Excel表格,並在C#中創建新的?
我有兩個excel
文件。
sheet1
具有5列與值。
sheet2
只有一列。
工作表1和工作表的第一列有一些唯一值。 我需要一個又一個excelsheet
,其中新的有5列(匹配的唯一值在工作表Sheet1都和sheet2)如何做到這一點使用C#
?
任何幫助,將不勝感激。如何比較兩個Excel表格,並在C#中創建新的?
您可以通過使用Interop.Excel(Interop C# tutorial)或Interop(f.e. 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
我希望這是有幫助的...
感謝斯蒂芬。 我試過並得到了Comman值的列表。然而在列表中我得到了列表的第一列的值我only..How可以得到所有5 Coulmn值 'code'var ummatches = list1.Select(F => f.Code)。除(list2.Select(B => b.Code)); – 2013-05-11 08:13:09
我要你提供一些代碼樣本... – stefankmitph 2013-05-11 08:46:05
請給我一些solutions..Thanks – 2013-05-11 09:01:57