Remover duplicatas usando a API JavaScript do Excel
Este artigo fornece um exemplo de código que remove entradas duplicadas em um intervalo usando a API JavaScript do Excel. Para obter a lista completa de propriedades e métodos compatíveis com o Range
objeto, consulte Classe Excel.Range.
Remover linhas com entradas duplicadas
O método Range.removeDuplicates remove linhas com entradas duplicadas nas colunas especificadas. O método passa por cada linha no intervalo do índice de menor valor até o índice de maior valor no intervalo (de cima para baixo). Uma linha é excluída se um valor em sua coluna ou colunas especificadas aparecer mais cedo no intervalo. Linhas no intervalo abaixo da linha excluída são deslocadas para cima. removeDuplicates
não afeta a posição de células fora do intervalo.
removeDuplicates
leva um number[]
representando os índices da coluna que são verificados para duplicatas. Essa matriz é baseada em zero e relativa ao intervalo, não à planilha. O método também usa um parâmetro booliano que especifica se a primeira linha é um cabeçalho. Quando true
, a linha superior é ignorada ao considerar duplicatas. O removeDuplicates
método retorna um RemoveDuplicatesResult
objeto que especifica o número de linhas removidas e o número de linhas exclusivas restantes.
Ao usar o método de removeDuplicates
um intervalo, lembre-se do seguinte.
removeDuplicates
considera valores de célula, não resultados de função. Se as duas funções diferentes forem avaliadas como o mesmo resultado, os valores de célula não são considerados duplicatas.- Células vazias não serão ignoradas por
removeDuplicates
. O valor de uma célula vazia é tratado como qualquer outro valor. Isso significa que as linhas vazias contidas no intervalo serão incluídas emRemoveDuplicatesResult
.
O exemplo de código a seguir mostra a remoção de entradas com valores duplicados na primeira coluna.
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.");
});