问题描述
下面是在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检索不同类型的数据