C# 批量删除Excel中的重复行

打印 上一主题 下一主题

主题 867|帖子 867|积分 2601

当从不同来源导入Excel数据时,可能存在重复的记录。为了确保数据的准确性,通常需要删除这些重复的行。手动查找并删除可能会非常泯灭时间,而通过编程脚本则可以实如今短时间内处理大量数据。本文将提供一个利用C# 快速查找并删除Excel重复项的免费解决方案。
 
以下是实现步骤:

1. 首先安装免费.NET Excel 库 - Free Spire.XLS for .NET。( 可通过Nuget直接安装大概下载后手动安装)
2. 导入命名空间。
3. 利用 LoadFromFile() 方法加载Excel文件。
4. 获取指定工作表,并指定需要查找重复记录的单位格区域。
5. 利用LINQ 查询来找出重复行,并将这些行的行号存储在一个列表中。
6. 遍历这个列表并删除所有重复行。
7. 生存文件。
 
删除Excel重复行(C#代码)
  1. using Spire.Xls;
  2. using System.Linq;
  3. namespace RemoveDuplicateRows
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             //加载Excel文件
  10.             Workbook workbook = new Workbook();
  11.             workbook.LoadFromFile("示例.xlsx");
  12.             //获取第一张工作表
  13.             Worksheet sheet = workbook.Worksheets[0];
  14.             //指定需要删除重复记录的单元格区域
  15.             var range = sheet.Range["A1:A" + sheet.LastRow];
  16.             //获取重复项的行号
  17.             var duplicatedRows = range.Rows
  18.                    .GroupBy(x => x.Columns[0].DisplayedText)
  19.                    .Where(x => x.Count() > 1)
  20.                    .SelectMany(x => x.Skip(1))
  21.                    .Select(x => x.Columns[0].Row)
  22.                    .ToList();
  23.             //删除重复行     
  24.             for (int i = 0; i < duplicatedRows.Count; i++)
  25.             {
  26.                 sheet.DeleteRow(duplicatedRows[i] - i);
  27.             }
  28.             //保存Excel文件
  29.             workbook.SaveToFile("删除重复行.xlsx");
  30.         }
  31.     }
  32. }
复制代码
 
以上代码快速查找了指定单位格范围内的重复项并实现一次性批量删除。结果如图:

 
Free Spire.XLS for .NET提供了一种操作Excel文档的高效方法,而无需依赖Microsoft Excel。这个库还支持读取、写入、转换、打印Excel等各种功能,可点击其中文教程检察更多示例。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表