В C# найти если столбец содержит "Н" если так, то удалить строку
Здравствуйте, у меня есть файл excel, и есть столбец, который имеет либо "Y", либо "N" для каждой строки, и я хотел бы удалить строку, если она содержит "N", но борется с условным, чтобы проверить его.
Что я уже пробовал:
<pre> Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook sheet = excel.Workbooks.Open("C:\\Data\\Enrolled.xlsx"); Microsoft.Office.Interop.Excel.Worksheet x = excel.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet; int i = 0; for (i = 1; i <= lastRow; i++) { // Conditional Needed to check if column row has a "N" if (excel.WorksheetFunction) (x.Rows[i] as Microsoft.Office.Interop.Excel.Range).Delete(); } sheet.Close(true, Type.Missing, Type.Missing); excel.Quit();
Paulo Zemek
Я не уверен, что имею дело с excel, но когда вы удаляете строку, все остальные индексы строк выше этого будут меняться.
Итак, если вы удалите строку 10, строка 11 станет 10, но ваш for все равно будет проверять строку 11 (и хуже всего, если 11 было до последней строки, то теперь это past-last).
Так что, вероятно, это поможет начать с конца:
for (i = lastRow; i>=1; i--) { /* your code */ }