さまざまなソースからExcelデータをインポートする場合、行が複製される場合があります。データの精度を確保するには、これらの複製の行を削除する必要があることがよくあります。
それらを手動で見つけて削除するのは非常に時間がかかりますが、プログラミングスクリプトを実装して短期間で大量のデータを処理できます。この記事では、C#を使用してExcelの重複行をすばやく見つけて削除するための無料のソリューションを提供します。
無料.NET Excelライブラリ
まず、Free Spire.XLS for .NETライブラリをインストールする必要があります。 Nugetを介して直接インストールできます。または、以下のリンクからダウンロードして、手動でインポートすることもできます。
C#でExcelで重複する行を削除する方法
主な手順:
-
LoadFromFile()
メソッドを使用して、Excelファイルをロードします。 - 指定されたワークシートを入手し、繰り返し行を見つける必要があるセルエリアを指定します。
- LINQクエリを使用して繰り返しを見つけ、これらの行のライン番号をリストに保存します。
- このリストを繰り返し、すべての重複した行を削除します。
- ファイルを保存します。
サンプルC#コード:
using Spire.Xls;
using System.Linq;
namespace RemoveDuplicateRows
{
class Program
{
static void Main(string[] args)
{
//加载Excel文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("示例.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);
}
//保存Excel文件
workbook.SaveToFile("删除重复行.xlsx");
}
}
}
上記のコードでは、指定されたセル範囲内の重複アイテムがすぐに見つかり、一度に削除されていました。
Free Spire.XLS for .NETは、Microsoft Excelに依存せずにExcelドキュメントを操作するための効率的な方法を提供します。このライブラリは、Excelの読み取り、書き込み、変換、印刷など、さまざまな機能もサポートしています。以下のリンクをクリックして、より多くの例を表示できます。