Удаление дубликатов с помощью API JavaScript для Excel
В этой статье представлен пример кода, который удаляет повторяющиеся записи в диапазоне с помощью API JavaScript для Excel. Полный список свойств и методов, поддерживаемых объектом, см. в Range
разделе Класс Excel.Range.
Удаление строк с повторяющимися записями
Метод Range.removeDuplicates удаляет строки с повторяющимися записями в указанных столбцах. Метод проходит через каждую строку в диапазоне от индекса с наименьшим значением до индекса с наибольшим значением в диапазоне (сверху вниз). Строка удаляется, если значение в ее указанном столбце или столбцах уже встречалось в диапазоне. Строки в диапазоне под удаленной строкой сдвигаются вверх. Функция removeDuplicates
не влияет на положение ячеек вне диапазона.
Функция removeDuplicates
использует параметр number[]
, представляющий индексы столбцов, которые проверяются на наличие дубликатов. Этот массив отсчитывается от нуля относительно диапазона, а не листа. Метод также принимает логический параметр, указывающий, является ли первая строка заголовком. Если true
задано значение , верхняя строка игнорируется при рассмотрении дубликатов. Метод removeDuplicates
возвращает RemoveDuplicatesResult
объект , указывающий количество удаленных строк и количество уникальных оставшихся строк.
При использовании метода диапазона removeDuplicates
учитывайте следующее.
- Функция
removeDuplicates
рассматривает значения ячеек, а не результаты функций. Если две разные функции вычисляют одинаковый результат, значения ячеек не считаются повторяющимися. - Пустые ячейки не игнорируются функцией
removeDuplicates
. Значение пустой ячейки обрабатывается как любое другое значение. Это означает, что пустые строки, содержащиеся в диапазоне, будут включены в объектRemoveDuplicatesResult
.
В следующем примере кода показано удаление записей с повторяющимися значениями в первом столбце.
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.");
});
Данные перед удалением повторяющихся записей
Данные после удаления повторяющихся записей
См. также
Office Add-ins