使用C#代码删除Excel中重复行的实现方法

 更新时间:2026年02月15日 08:52:38   作者:2501_93070778  
当我们将来自不同来源的数据集合并,或从其他工作表复制数据时,如果数据匹配不够严谨,就很容易产生重复行,这些重复数据可能干扰统计分析和公式计算,甚至导致结果失真,本文将介绍如何使用 Spire.XLS for .NET 以编程方式高效地实现删除Excel重复行

引言

当我们将来自不同来源的数据集合并,或从其他工作表复制数据时,如果数据匹配不够严谨,就很容易产生重复行。这些重复数据不仅会影响数据整洁度,还可能干扰统计分析和公式计算,甚至导致结果失真。

因此,删除重复行是 Excel 数据处理中非常常见且重要的一项操作。本文将介绍如何使用 Spire.XLS for .NET 以编程方式高效地实现这一功能。

安装 Spire.XLS for .NET

首先,需要在 .NET 项目中添加 Spire.XLS for .NET 包中的 DLL 文件作为引用。您可以通过官网下载对应的安装包获取 DLL 文件,也可以直接通过 NuGet 进行安装。

PM> Install-Package Spire.XLS

在 C# 和 VB.NET 中删除 Excel 重复行

手动删除重复行不仅步骤繁琐,而且十分耗时。借助 Spire.XLS for .NET,可以一次性识别并移除所有重复行,大幅提升处理效率。具体实现步骤如下:

  1. 创建一个 Workbook 实例。
  2. 使用 Workbook.LoadFromFile() 方法加载示例 Excel 文件。
  3. 通过 Workbook.Worksheets[sheetIndex] 获取指定索引的工作表。
  4. 使用 Worksheet.Range 属性指定需要检测并删除重复记录的单元格区域。
  5. 获取该区域中包含重复内容的行。
  6. 遍历所有重复行,并通过 Worksheet.DeleteRow() 方法将其删除。
  7. 使用 Workbook.SaveToFile() 方法保存处理后的结果文件。

通过以上步骤,即可实现对 Excel 重复行的自动化删除。

具体示例代码如下:

using Spire.Xls;
using System.Linq;

namespace RemoveDuplicateRows
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Workbook 实例
            Workbook workbook = new Workbook();

            // 加载示例 Excel 文档
            workbook.LoadFromFile("Test.xlsx");

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 指定需要删除重复记录的单元格区域
            var range = sheet.Range["A1:A" + sheet.LastRow];

            // 获取重复行的行号
            var duplicatedRows = range.Rows
                   .GroupBy(x => x.Columns[0].DisplayedText)
                   .Where(x => x.Count() > 1)
                   .SelectMany(x => x.Skip(1))
                   .Select(x => x.Columns[0].Row)
                   .ToList();

            // 删除重复行        
            for (int i = 0; i < duplicatedRows.Count; i++)
            {
                sheet.DeleteRow(duplicatedRows[i] - i);
            }

            // 保存结果文档
            workbook.SaveToFile("RemoveDuplicateRows.xlsx");
        }
    }
}

到此这篇关于使用C#代码删除Excel中重复行的实现方法的文章就介绍到这了,更多相关C#删除Excel重复行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#实现简易的加密、解密字符串工具类实例

    C#实现简易的加密、解密字符串工具类实例

    这篇文章主要介绍了C#实现简易的加密、解密字符串工具类,涉及C#字符串加密与加密的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • 基于C#实现的多生产者多消费者同步问题实例

    基于C#实现的多生产者多消费者同步问题实例

    这篇文章主要介绍了基于C#实现的多生产者多消费者同步问题,包括了加锁与释放锁,以及对应临界资源的访问。是比较实用的技巧,需要的朋友可以参考下
    2014-09-09
  • C#中const和readonly的用法比较

    C#中const和readonly的用法比较

    今天小编就为大家分享一篇关于C#中const和readonly的用法比较,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 快速了解c# 结构体

    快速了解c# 结构体

    这篇文章主要介绍了c# 结构体的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • c#学习教程之JSON文件及解析实例

    c#学习教程之JSON文件及解析实例

    json作为互联网上轻量便捷的数据传输格式,越来越受到重视,下面这篇文章主要给大家介绍了关于c#学习教程之JSON文件及解析的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • C# 开发step步骤条控件详解

    C# 开发step步骤条控件详解

    本篇文章主要介绍了用C#来实现一个step控件的方法步骤,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • C#(int)中Convert、Parse、TryParse的区别

    C#(int)中Convert、Parse、TryParse的区别

    Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int) 四者都可以解释为将类型转换为 int,那它们的区别是什么呢?
    2013-04-04
  • C#序列化与反序列化实例

    C#序列化与反序列化实例

    这篇文章主要介绍了C#序列化与反序列化的实现方法,实例分析了序列化与反序列化的原理与实现技巧,需要的朋友可以参考下
    2015-01-01
  • 比较2个datatable内容是否相同的方法

    比较2个datatable内容是否相同的方法

    这篇文章主要介绍了比较2个datatable内容是否相同的方法,大家参考使用吧
    2014-01-01
  • 使用c#+IMap实现收取163邮件

    使用c#+IMap实现收取163邮件

    本文给大家推荐的是使用c#+IMap实现收取163邮件的具体方法和示例代码,并附上了smtp邮箱发送邮件的代码,有需要的小伙伴可以参考下
    2018-02-02

最新评论