C# 批量刪除Excel中的重複行

當從不同來源導入Excel數據時,可能存在重複的記錄。爲了確保數據的準確性,通常需要刪除這些重複的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重複項的免費解決方案。

 

以下是實現步驟:

1. 首先安裝免費.NET Excel 庫 - Free Spire.XLS for .NET。( 可通過Nuget直接安裝或者下載後手動安裝)

2. 導入命名空間。

3. 使用 LoadFromFile() 方法加載Excel文件。

4. 獲取指定工作表,並指定需要查找重複記錄的單元格區域。

5. 使用LINQ 查詢來找出重複行,並將這些行的行號存儲在一個列表中。

6. 遍歷這個列表並刪除所有重複行。

7. 保存文件。

 

刪除Excel重複行(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提供了一種操作Excel文檔的高效方法,而無需依賴Microsoft Excel。這個庫還支持讀取、寫入、轉換、打印Excel等各種功能,可點擊其中文教程查看更多示例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章