Supprimer les doublons à l’aide de l’API JavaScript Excel
Cet article fournit un exemple de code qui supprime les entrées en double dans une plage à l’aide de l’API JavaScript Excel. Pour obtenir la liste complète des propriétés et méthodes prises en charge par l’objet Range
, voir Classe Excel.Range.
Supprimer des lignes avec des entrées en double
La méthode Range.removeDuplicates supprime les lignes avec des entrées en double dans les colonnes spécifiées. La méthode passe par chaque ligne de la plage de l’index à la valeur la plus basse à l’index ayant la valeur la plus élevée dans la plage (de haut en bas). Une rangée est supprimée si une valeur dans sa/ses colonne(s) spécifiée(s) apparue(s) plus tôt dans la plage. Les rangées de la plage en-dessous de la rangée supprimée sont déplacées. removeDuplicates
n’affecte pas la position des cellules en dehors de la rangée.
removeDuplicates
prend un number[]
représentant les indices de la colonne qui sont vérifiés pour les doublons. Ce tableau est à base zéro et lié à la rangée, et non à la feuille de calcul. La méthode accepte également un paramètre booléen qui spécifie si la première ligne est un en-tête. Quand true
la valeur est , la ligne supérieure est ignorée lors de la prise en compte des doublons. La removeDuplicates
méthode retourne un RemoveDuplicatesResult
objet qui spécifie le nombre de lignes supprimées et le nombre de lignes uniques restantes.
Lorsque vous utilisez la méthode d’une removeDuplicates
plage, gardez les points suivants à l’esprit.
removeDuplicates
considère les valeurs de cellule, et non les résultats de la fonction. Si deux fonctions différentes évaluent le même résultat, les valeurs de la cellule ne sont pas considérées comme doublons.- Les cellules vides ne sont pas ignorées par
removeDuplicates
. La valeur d’une cellule vide est traitée comme toute autre valeur. Cela signifie que les rangées vides contenues au sein de la plage seront incluses dans leRemoveDuplicatesResult
.
L’exemple de code suivant montre la suppression des entrées avec des valeurs dupliquées dans la première colonne.
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets.getItem("Sample");
let range = sheet.getRange("B2:D11");
let deleteResult = range.removeDuplicates([0],true);
deleteResult.load();
await context.sync();
console.log(deleteResult.removed + " entries with duplicate names removed.");
console.log(deleteResult.uniqueRemaining + " entries with unique names remain in the range.");
});