C#-Excel:删除Excel中的整行,在要删除的行的第一列有一个特定值



我正在使用excel文件创建一个web应用程序。如果excel文件有m行n列,并且如果该行A列中单元格的值是字符串"str",则我必须删除整行。

我尝试了各种方法。我现在使用的这个删除了一半以上的现有元素。我正在使用Microsoft.Office.Interop.Excel。我想知道为什么会发生这种情况,以及问题的解决方案。提前谢谢。

public void DeleteRow(int m, string str)
    {
        for (int rCnt = 2; rCnt <= m; rCnt++)
        {
             if((ws.Cells[rCnt, 1]).ToString().Contains(str))
             {
                ((Range)ws.Rows[rCnt]).Delete(XlDirection.xlUp);
             }
        }
        wb.Save();//save the workbook
        wb.Close(false, "", false);//close the workbook
    }
}

我甚至尝试过使用:

((Range)ws.Rows[rCnt]).EntireRow.Delete(XlDirection.xlUp);

而不是:

((Range)ws.Rows[rCnt]).Delete(XlDirection.xlUp);

自下而上:

for (int rCnt = m; rCnt >= 2; rCnt--)

这将避免删除错误的行,因为行在删除后会发生偏移。

最新更新