/// <summary>/// 查找重复值(多列)/// </summary>/// <param name="colNums"></param>/// <returns></returns>public string FindRepeat(int[] colNums){List<string> ls = new List<string>();Excel.Range rng = Sht.UsedRange;int startLine = rng.CurrentRegion.Rows[1].Row;int endLine = rng.CurrentRegion.Rows[rng.CurrentRegion.Rows.Count].Row;if (endLine > startLine){List<object[,]> listObjs = new List<object[,]>();foreach (int col in colNums){object[,] objs = Sht.Range[Sht.Cells[startLine, col], Sht.Cells[endLine, col]].Value2;listObjs.Add(objs);}Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();for (int i = listObjs[0].GetLowerBound(0); i <= listObjs[0].GetUpperBound(0); i++){List<string> lsLine = new List<string>();for (int j = 0; j < listObjs.Count; j++){string c = (null == listObjs[j][i, 1]) ? "" : listObjs[j][i, 1].ToString().Trim();lsLine.Add(string.Format("[{0}{1}]{2}", colNums[j], MyCommon.IntToLetter(colNums[j]),c));}string k = string.Join("/",lsLine.ToArray());if (!dict.ContainsKey(k)){List<int> rows = new List<int>();rows.Add(startLine - 1 + i);dict.Add(k, rows);}else{dict[k].Add(startLine - 1 + i);}}foreach (var item in dict){if (item.Value.Count > 1){ls.Add(string.Format("【{0}】:【{1}】", item.Key, string.Join("/", item.Value.ToArray())));}}}//ls.Add(string.Format("所在列:{0},开始行号:{1} 结束行号:{2}",col,startLine,endLine));return string.Join(Environment.NewLine, ls.ToArray());}

调用:

        /// <summary>/// 查找重复项/// </summary>/// <param name="control"></param>public void FindRepeat(IRibbonControl control){Excel.Application app = ExcelDnaUtil.Application as Excel.Application;if (!Information.TypeName(app.Selection).Equals("Range"))return;Excel.Range rngSelection = app.Selection;HashSet<int> colNums = new HashSet<int>();foreach (Excel.Range item in rngSelection.Areas){colNums.Add(item.Column);}List<int> colNumList = new List<int>(colNums); colNumList.Sort();//string msg = string.Format("{0}",string.Join("/", colNumList.ToArray()));//MessageBox.Show(msg);string msg = string.Empty;MyAided myAided = new MyAided(app.ActiveSheet as Excel.Worksheet);if (1 == colNumList.Count){msg = myAided.FindRepeat();}else{msg = myAided.FindRepeat(colNumList.ToArray());}if (!string.IsNullOrEmpty(msg)){MessageBox.Show(msg, "重复项", MessageBoxButtons.OK);MyCommon.WriteLog(msg, "d:\\Log", true);}}

C#查找Excel重复值(多列)相关推荐

  1. C#查找Excel()重复项

    /// <summary>/// 查找重复项/// </summary>/// <param name="control"></param ...

  2. python对有重复值的列求和之后放到第一次出现的位置

    对第二列求和,但是重复的要把数据放到第一次重复的地方,其他的空着. 整体思路是计数,之后建立一个列表储存列信息,之后相乘. """ author: shuaijie in ...

  3. 在excel中如何筛选重复数据_Excel表格技巧—如何在 Excel 中查找重复值

    今天和大家一起分享一下excel表格中如何快速查找重复值,在办公中很经常需要它. 先打开一张需要查找重复数据或重复值的EXCLE表格,如图我们以B2做为查找列: 点击工具菜单栏的"开始&qu ...

  4. ediplus 复制编辑一列_Excel中如何使用公式查找一列中的重复值并且在另一列里面列出来...

    如图,在A列单元格区域中,有一些内容. 但是部分内容重复了.在Excel里面,有很多方法可以来查找到重复值.今天来介绍一下使用公式,在B列里面列出哪些值是有重复的. 在单元格B2照片那个,输入公式: ...

  5. 5个Excel快速查找,解决删除重复值技巧

    现在在职场中,少不了要用到Excel技巧,虽然有时很快捷,但不能保证在使用的过程中没有重复的数据的出现,想要排查重复数据,一个个的看,那多浪费时间,所以呀,今天小编就来教给大家5个很实用的查找,删除. ...

  6. 怎么在Excel2003版中查找重复值

     编辑Excel文档经常会遇到需要查找重复值并删除.在我的百度经验中我分享了一篇题为:Excel表格中怎么查找重复项的文章.其使用的软件为excel2007. 为了解决部分使用版本为excel20 ...

  7. 用Excel删除列表重复值

    清理数据时,经常发现重复值,而重复值对实验影响 就像"食之无味",下面来介绍一下删除几种重复值的办法: 所用工具:Excel(不是WPS里面的excel)默默说声:office大法 ...

  8. 【pandas 重复值的处理】

    当数据中出现了重复值,在大多数情况下需要进行删除. name score agou 99.0 someone 78.0 agou 99.0 ahua 89.0 Pandas提供了两个函数专门用来处理数 ...

  9. DSML_用Excel实现按行排序后按列排序,最后高亮重复值

    记录一个刚刚用本'笨'办法解决的数据清洗和数据整理问题 前几天收到邮件,对之前我一篇论文的方法进行测试的时候有些疑问.我在复现的时候遇到了以下的问题: 我现在有三个结果,res1, res2 和 re ...

最新文章

  1. 4项无线技术对比:谁更适合物联网领域?
  2. c语言单链表_C语言笔试题—单链表逆序
  3. 【Tree】Prim算法思想与步骤
  4. Node.js的基本使用3
  5. Win10系统局域网中的其他电脑能Ping通但是无法访问本地IIS发布的网站
  6. 【数据库系统】SQL基本固有类型
  7. FPGA机器学习之学习的方向
  8. php markdown 电子书_PHP Markdown转PDF解决方案
  9. 5岁自学python编程-枣庄适合小学生学的少儿编程课程在哪里
  10. hadoop之 hadoop日志存放路径
  11. JDBC操作数据库,第一:jsp插入mysql数据库,坎坷摸索分享
  12. WSUS服务器更改存放路径方法
  13. 一张图解释什么是遗传算法_什么是智慧水务决策支持系统?从一张图说起
  14. python彩色螺旋线_python绘制彩色螺旋线
  15. laravel过滤富文本提交的标签(防止XSS等js脚本攻击)
  16. Moore FSM和Mealy FSM的区别
  17. 真实业务场景展现CAS原理的ABA问题及解决方案
  18. 想做跨境电商,这几种收款方式必须知道!!
  19. 2021信创“大比武”正式启动!金山办公助力信创人才培养和生态成熟
  20. IMAS辅导书籍推荐

热门文章

  1. java ipc pgsql_PostgreSQL源码结构
  2. Maven:A cycle was detected in the build path of project 'xxx'. The cycle consists of projects {xx}
  3. 引擎磨合 (Break In) 的秘密
  4. 集合之比较接口器+Map家族的HashMap+LinkedHashMap+Hashtable+ConcurrentHashMap
  5. 华为否认Mate40升级鸿蒙传闻,华为鸿蒙系统什么时候上市?华为否认Mate40升级鸿蒙传闻...
  6. 荣耀20青春版装鸿蒙系统,华为鸿蒙2.0系统正式发布,只有这55款华为设备,可升级鸿蒙系统...
  7. 手把手教你Axure-默认元件库(上)
  8. 经济观察:开业三周年 亚投行打消外界四大质疑
  9. H2O机器学习平台容器化部署——基于Docker
  10. 【LeetCode】643. 子数组最大平均数 I