using System; using ClosedXML.Excel; namespace ExelEditor { class Program { static void Main(string[] args) { try { string path = @"C:\root\3.xlsx"; var workbook = new XLWorkbook(path); var worksheet = workbook.Worksheets.Worksheet(1); foreach (var row in worksheet.Rows()) { string targetCell = row.Cell(5).GetString(); if (targetCell.Contains("Заречная") == false && targetCell.Contains("Адрес регистрации") == false) { //Console.WriteLine(targetCell); //Console.ReadKey(); row.Delete(); } } workbook.Save(); Console.WriteLine("Успешно!"); Console.ReadKey(); } catch (Exception e) { Console.WriteLine(@"Ошибка! Введен неверный путь до exel-файла."); Console.WriteLine(@"Ошибка: " + e.Message); Console.ReadKey(); } } } } Second option
using System; using ClosedXML.Excel; using System.Linq; namespace ExelEditor { class Program { static void Main(string[] args) { try { string path = @"C:\root\3.xlsx"; var workbook = new XLWorkbook(path); var worksheet = workbook.Worksheets.Worksheet(1); var ws = workbook.Worksheets.Add("Новый лист"); for (int i = worksheet.RowsUsed().Count() - 1; i >= 0; i--) { var row = worksheet.Row(i); string targetCell = row.Cell(5).GetString(); if (targetCell.Contains("Заречная") == false && targetCell.Contains("Адрес регистрации") == false) { Console.WriteLine(targetCell); Console.ReadKey(); row.Delete(); } } workbook.Save(); Console.WriteLine("Успешно!"); Console.ReadKey(); } catch (Exception e) { Console.WriteLine(@"Ошибка! Введен неверный путь до exel-файла."); Console.WriteLine(@"Ошибка: " + e.Message); Console.ReadKey(); } } } } Gives an error out of memory