返回顶部
分享到

使用C#删除Excel表格中的重复行数据的代码

C#教程 来源:互联网 作者:佚名 发布时间:2025-05-29 20:43:38 人浏览
摘要

重复行是指在Excel表格中完全相同的多行数据。这些冗余行的存在可能源于多种原因,例如: 数据输入错误:用户在手动输入数据时,可能不小心多次输入相同的信息。 数据导入:从其他系统

重复行是指在Excel表格中完全相同的多行数据。这些冗余行的存在可能源于多种原因,例如:

  • 数据输入错误:用户在手动输入数据时,可能不小心多次输入相同的信息。
  • 数据导入:从其他系统或文件导入数据时,可能会出现重复记录,尤其是在合并多个数据源时。
  • 复制粘贴:在处理数据时,复制粘贴操作可能导致无意中创建重复行。

删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论。通过清理重复数据,可以提高数据的准确性和整洁性,从而使后续的分析工作更加高效。这篇文章将探讨如何使用C# 实现快速删除Excel表格中的重复行,主要涵盖内容如下:

  • C# 删除Excel工作表中的重复行
  • C# 删除指定Excel单元格区域中的重复行
  • C# 基于特定列删除重复行

使用工具

要使用 C# 从 Excel 表格中删除重复数据,需要使用合适的Excel文档处理库。本文所使用的库是 Spire.XLS for .NET,它支持在.NET应用程序中创建和操作Excel 文件,无需安装Microsoft Excel。

安装Spire.XLS for .NET

在开始之前,在Package Manager Console中运行以下命令从NuGet 安装 Spire.XLS 库:

1

Install-Package Spire.XLS

C# 删除Excel工作表中的重复行

重复行可能会导致工作表结构混乱,影响数据的完整性。Spire.XLS 提供了一种简单的方法来检测和删除工作表中的重复行。

语法

1

sheet.RemoveDuplicates();

工作原理

该方法会检查工作表中的每一行,并比较每行内的所有单元格。只有当所有单元格的值与另一行完全一致时,该行才会被视为重复。第一次出现的行将被保留,而后续的重复行将被删除。

实现代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

using Spire.Xls;

  

namespace RemoveDuplicatesFromWorksheet

{

    internal class Program

    {

        static void Main(string[] args)

        {

            // 打开 Excel 文件

            Workbook workbook = new Workbook();

            workbook.LoadFromFile("测试.xlsx");

  

            // 获取所需的工作表(索引从0开始)

            Worksheet sheet = workbook.Worksheets[0];

  

            // 从工作表中删除重复行

            sheet.RemoveDuplicates();

  

            // 保存修改后的文件

            workbook.SaveToFile("删除工作表内重复行.xlsx", ExcelVersion.Version2016);

            workbook.Dispose();

        }

    }

}

C# 删除指定Excel单元格区域中的重复行

有时,你可能只想清除工作表特定单元格区域中的重复行数据,而不影响其他部分。Spire.XLS 支持指定要删除重复项的单元格范围。

语法

1

sheet.RemoveDuplicates(int startRow, int startColumn, int endRow, int endColumn);

参数

startRow, startColumn, endRow, endColumn: 定义要检查重复项的单元格区域(行列索引从1开始)。

工作原理

该方法会比较指定单元格区域内的所有行,如果有两行或多行的每一列的值都完全相同,那么这些行就被认为是重复的,只保留第一次出现的那一行。区域外的行不会受到影响,仍然保持原样。

实现代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

using Spire.Xls;

  

namespace RemoveDuplicateRowsFromCellRange

{

    internal class Program

    {

        static void Main(string[] args)

        {

            // 打开 Excel 文件

            Workbook workbook = new Workbook();

            workbook.LoadFromFile("测试.xlsx");

  

            // 获取所需的工作表(索引从0开始)

            Worksheet sheet = workbook.Worksheets[0];

  

            // 从特定单元格区域中删除重复行

            sheet.RemoveDuplicates(2, 1, 9, 4);

  

            // 保存修改后的文件

            workbook.SaveToFile("删除单元格区域内重复行.xlsx", ExcelVersion.Version2016);

            workbook.Dispose();

        }

    }

}

C# 基于特定列删除重复行

在处理某些特定数据集时,您可能只希望根据特定的关键列来删除重复项,而忽略其他列的值。

Spire.XLS 提供了另一种 RemoveDuplicates() 方法重载,以支持这种需求。使用此方法,你可以:

  • 指定要操作的单元格区域
  • 指明该区域是否包含标题行
  • 选择用于比较重复的列

语法

1

sheet.RemoveDuplicates(int startRow, int startColumn, int endRow, int endColumn, bool hasHeaders, int[] columnOffsets);

参数

  • startRow, startColumn, endRow, endColumn: 定义要检查重复数据的单元格区域(行列索引从1开始)。
  • hasHeaders: 判定第一行是否为标题行。如果为 true,则第一行将不参与比较。
  • columnOffsets: 相对于 startColumn 的偏移数组,指定用于比较的列,例如0表示指定区域中的第一列。

工作原理

该方法在删除重复行时,仅考虑用户指定的某些列。如果多行在这些指定列中的值完全相同,则只保留第一行,其他重复的行将被删除。这种做法尤其适用于需要根据特定标识(如客户 ID 或电子邮件)来确保数据唯一性的场景。

实现代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

using Spire.Xls;

  

namespace RemoveDuplicateRows

{

    internal class Program

    {

        static void Main(string[] args)

        {

            // 打开 Excel 文件

            Workbook workbook = new Workbook();

            workbook.LoadFromFile("测试.xlsx");

  

            // 获取所需的工作表(索引从0开始)

            Worksheet sheet = workbook.Worksheets[0];

  

            // 定义要检查重复行的区域

            int startRow = 2;

            int startColumn = 1;

            int endRow = 9;

            int endColumn = 4;

  

            // 判定区域内的第一行是否是标题行

            bool hasHeaders = false;

  

            // 指定用于比较重复的列

            int[] columnsToCompare = { 1, 2 };

  

            // 在定义的区域内基于指定列删除重复行

            sheet.RemoveDuplicates(startRow, startColumn, endRow, endColumn, hasHeaders, columnsToCompare);

  

            // 保存修改后的文件

            workbook.SaveToFile("基于特定列删除重复行.xlsx", ExcelVersion.Version2016);

            workbook.Dispose();           

        }

    }

}

RemoveDuplicates 方法快速比较

以下是RemoveDuplicates 几种方法的快速比较,你可以根据自己的需求选择最合适的方法:

方法

适用范围

RemoveDuplicates()

整个工作表

RemoveDuplicates(int startRow, int startColumn, int endRow, int endColumn)

指定单元格区域

RemoveDuplicates(int startRow, int startColumn, int endRow, int endColumn, bool hasHeaders, int[] columnOffsets)

基于特定列

以上就是使用C#实现快速删除Excel工作表中重复行数据的全部内容。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • C#实现雪花算法(Snowflake Algorithm)
    在现代分布式系统中,生成全局唯一的标识符(ID)是一个非常重要的问题。随着微服务架构和分布式系统的普及,传统的单机数据库生成
  • 使用C#删除Excel表格中的重复行数据的代码

    使用C#删除Excel表格中的重复行数据的代码
    重复行是指在Excel表格中完全相同的多行数据。这些冗余行的存在可能源于多种原因,例如: 数据输入错误:用户在手动输入数据时,可能
  • C#实现将Excel表格转换为图片(JPG/ PNG)

    C#实现将Excel表格转换为图片(JPG/ PNG)
    Excel 表格可能会因为不同设备、不同软件版本或字体缺失等问题,导致格式错乱或数据显示异常。转换为图片后,能确保数据的排版、格式
  • C#实现在Excel中插入和操作切片器

    C#实现在Excel中插入和操作切片器
    切片器(Slicer)是Excel中的一个强大工具,它提供了直观且交互式的方式来过滤数据。通过切片器,用户可以轻松选择数据范围并快速查看特
  • C/C++ Windows SAPI实现文字转语音功能
    本文通过封装Windows SAPI(Speech Application Programming Interface),提供了一个现代化的C++接口实现文字转语音功能。主要特性包括支持同步/异步语
  • C#结合html2canvas切割图片并导出到PDF

    C#结合html2canvas切割图片并导出到PDF
    需求 html2canvas 是一个 JavaScript 库,它可以把任意一个网页中的元素(包括整个网页)绘制到指定的 canvas 中,适用于生成网截图或将指定元
  • C#使用录音并导出录音数据

    C#使用录音并导出录音数据
    一、枚举电脑录音设备,指定设备录音 1、使用Vs2019的Nuget包管理器安装NAudio包 NAudio包 如图所示: 2、创建录音对象并指定录音格式 1 2 3 4
  • C#播放short或者byte类型的音频

    C#播放short或者byte类型的音频
    一、通过Nuget安装NAudio包 开发工具:vs2019 点击VisualStudio 2019的工具-NuGet包管理器-》管理解决方案的NuGet的程序包-》浏览-》在搜索框中输入
  • C# winfrom异步加载数据不影响窗体UI的操作方法
    在数字浪潮汹涌澎湃的时代,程序开发宛如一座神秘而宏伟的魔法城堡,矗立在科技的浩瀚星空中。代码的字符,似那闪烁的星辰,按照特
  • 使用C#实现AES加密与解密
    1. AES 加密简介 AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,意味着加密和解密使用相同的密钥。AES 支持不同的密钥长
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计