有关在Excel工作表中查找重复项的协助

问题描述

下面是在Excel工作表中查找重复项的代码

DataTable dtExcel

        //Find Excel Duplicates
        var excelDuplicates = dtExcel.AsEnumerable()
            .GroupBy(dr => dr.Field<string>("Value"))
            .Where(gr => gr.Count() > 1)
            .Select(gr => Convert.ToString(gr.First()["Value"]))
            .ToList();
            

我的excel工作表中没有“值”作为列,实际上我没有任何标题。 所以我需要在没有标题/列名称的excel中查找重复项 我需要在第一列中找到重复项

我尝试使用dr.Field(string)(dr [0])),但没有帮助,因为它引发了system.invalidCastException错误'无法转换类型为'System.Double'的对象键入“ System.String” 。”

(基本上我是在尝试用int重载field.dr。

有人可以帮我吗?

解决方法

可能是您可以使用“ ClosedXML”之类的第三方库。

var workbook = new XLWorkbook();
var ws = workbook.Worksheet("sheetName");

然后遍历for循环中的所有数据,以获取和比较类似的值

var valueToCompare=  ws.Row(i).Cell(j).GetString();

或者如果您必须比较公式值(结果),则可以像使用“ Spire.Xls”一样使用smthing,想法是相同的:

 Workbook wb = new Workbook();
 wb.LoadFromFile("file path");
 Worksheet ws = wb.Worksheets[0];

var valueToCompare=ws.Range["A1"].FormulaValue;

使用此库,您可以从excel检索不同类型的数据