使用C#代码在 Excel 中删除重复行
当我们将来自不同来源的数据集合并,或从其他工作表复制数据时,如果数据匹配不够严谨,就很容易产生重复行。这些重复数据不仅会影响数据整洁度,还可能干扰统计分析和公式计算,甚至导致结果失真。 因此,删除重复行是 Excel 数据处理中非常常见且重要的一项操作。本文将介绍如何使用 Spire.XLS for .NET 以编程方式高效地实现这一功能。 首先,需要在 .NET 项目中添加 Spire.XLS for .NET 包中的 DLL 文件作为引用。您可以通过官网下载对应的安装包获取 DLL 文件,也可以直接通过 NuGet 进行安装。 手动删除重复行不仅步骤繁琐,而且十分耗时。借助 Spire.XLS for .NET,可以一次性识别并移除所有重复行,大幅提升处理效率。 具体实现步骤如下: 通过以上步骤,即可实现对 Excel 重复行的自动化删除。 具体示例代码如下: 如果您希望去除生成文档中的评估提示信息,或解除功能限制,可以为自己申请一个为期 30 天的试用许可证。安装 Spire.XLS for .NET
PM> Install-Package Spire.XLS在 C# 和 VB.NET 中删除 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");
}
}
}申请临时许可证