Comment supprimer les lignes en double d'un classeur Excel avec C# et VB.NET
Tags: csharp, excel, duplicate, dotnet
Published: 2023-08-04 08:24:37

Parfois, des lignes en double peuvent apparaître dans votre feuille de calcul, ce qui peut entraîner des erreurs et de la confusion. Supprimer les lignes en double d'Excel est un processus simple qui peut vous aider à rationaliser vos données et à les rendre plus précises. Dans cet article, nous allons explorer comment **supprimer les lignes en double d'Excel avec C# et VB.NET**.

## Bibliothèque .NET pour supprimer les lignes en double d'Excel
Pour supprimer les lignes en double d'Excel, cet article utilisera [Free Spire.XLS for .NET](https://www.e-iceblue.com/Introduce/free-xls-component.html). Il s'agit d'une bibliothèque gratuite et facile à utiliser pour créer, manipuler, convertir et imprimer des fichiers Excel.

Vous pouvez facilement installer la bibliothèque Free Spire.XLS for .NET depuis [NuGet](https://www.nuget.org/packages/FreeSpire.XLS/) en suivant ces étapes :

- Créez ou ouvrez un projet dans Visual Studio.
- Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et sélectionnez "**Manage NuGet Packages**".
- Dans l'onglet "**Browse**", recherchez "**Free Spire.XLS for .NET**".
- Sélectionnez "**Free Spire.XLS for .NET**" parmi les résultats de recherche et cliquez sur le bouton "**Install**".

Alternativement, vous pouvez également [télécharger](https://www.e-iceblue.com/Download/download-excel-for-net-free.html) Free Spire.XLS for .NET depuis son site officiel, extraire le package, puis ajouter les fichiers DLL du dossier "Bin" à votre projet en tant que références.

## Supprimer les lignes en double d'Excel avec C# et VB.NET

Après avoir installé la bibliothèque, vous pouvez commencer à l'utiliser pour supprimer les lignes en double de votre feuille de calcul Excel avec C# et VB.NET.

L'exemple suivant montre comment supprimer les lignes en double d'une feuille de calcul Excel avec C# :
```csharp
using Spire.Xls; 
using System.Linq; 
 
namespace SupprimerLignesEnDouble 
{ 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            // Créer une instance de Workbook 
            Workbook workbook = new Workbook(); 
 
            // Charger un document Excel d'exemple 
            workbook.LoadFromFile("Test.xlsx"); 
 
            // Obtenir la première feuille de calcul 
            Worksheet sheet = workbook.Worksheets[0]; 
 
            // Spécifier la plage de cellules dans laquelle les enregistrements en double doivent être supprimés 
            var range = sheet.Range["A1:A" + sheet.LastRow]; 
 
            // Obtenir les numéros des lignes en double 
            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(); 
 
            // Supprimer les lignes en double         
            for (int i = 0; i < duplicatedRows.Count; i++) 
            { 
                sheet.DeleteRow(duplicatedRows[i] - i); 
            } 
 
            // Enregistrer le document résultant 
            workbook.SaveToFile("SupprimerLignesEnDouble.xlsx"); 
        } 
    } 
} 
```
L'exemple suivant montre comment supprimer les lignes en double d'une feuille de calcul Excel avec VB.NET :
```vb
Imports Spire.XLS 
Imports System.Linq 
 
Namespace SupprimerLignesEnDouble 
    Class Program 
        Private Shared Sub Main(ByVal args() As String) 
            'Créer une instance de Workbook 
            Dim workbook As New Workbook 
 
            'Charger un document Excel d'exemple 
            workbook.LoadFromFile("Test.xlsx") 
 
            'Obtenir la première feuille de calcul 
            Dim sheet As Worksheet = workbook.Worksheets(0) 
 
            'Spécifier la plage de cellules dans laquelle les enregistrements en double doivent être supprimés 
            Dim range = sheet.Range(("A1:A" + sheet.LastRow)) 
 
            'Obtenir les numéros des lignes en double 
            Dim duplicatedRows = range.Rows.GroupBy(Function(x) x.Columns(0).DisplayedText).Where(Function(x) x.Count() > 1).SelectMany(Function(x) x.Skip(1)).[Select](Function(x) x.Columns(0).Row).ToList() 
 
            'Supprimer les lignes en double         
            Dim i As Integer = 0 
            Do While (i < duplicatedRows.Count) 
                sheet.DeleteRow((duplicatedRows(i) - i)) 
                i = (i + 1) 
            Loop 
 
            'Enregistrer le document résultant 
            workbook.SaveToFile("SupprimerLignesEnDouble.xlsx") 
        End Sub 
    End Class 
End Namespace 
```

## Conclusion
Cet article a démontré comment supprimer les lignes en double d'Excel en utilisant C# et VB.NET avec la bibliothèque Free Spire.XLS for .NET. En plus de cette fonctionnalité, vous pouvez également utiliser la bibliothèque pour effectuer une large gamme de manipulations sur Excel, notamment [la fusion de fichiers Excel](https://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Excel-Merge-Merge-Excel-Files-into-One-with-C-VB.NET.html), [la division de fichiers Excel](https://www.e-iceblue.com/Tutorials/Spire.XLS/Program-Guide/Document-Operation/Split-a-Workbook-into-Multiple-Excel-Documents-in-C-VB.NET.html), [la création de différents types de graphiques](https://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Column-Charts-Generate-Excel-Column-Chart-with-C-VB.NET.html), [l'ajout de nombreuses formules](https://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Add-Formulas-Add-Excel-Formulas-in-C-VB.NET.html), [la création de tableaux croisés dynamiques](https://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Pivot-Table-Create-Pivot-Table-in-Excel-with-C-/VB.NET.html), [l'application de formats conditionnels](https://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Conditional-Formatting/Highlight-Top-and-Bottom-Ranked-Values-in-Excel-Using-C.html), et bien plus encore.