我正在尝试从Excel中删除空行。

我试过看其他示例,甚至尝试实现,但是它不起作用。我需要删除整个行,如果该行的第一个单元格为空。

这是我尝试过的:

ReadExcel.cs:

Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Open(fileLocation)
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.ActiveSheet;
Excel.Range usedRange = worksheet.UsedRange;
int rowCount = worksheet.UsedRange.Rows.Count;
int colCount = worksheet.UsedRange.Columns.Count;

        for (int i = 1; i <= rowCount; i++)
        {
      if (usedRange.Cells[1, 1] == null)
             {
                // Delete entire row if first cell is empty
                usedRange.Cells[1, 1]).EntireRow.Delete(null);
            }

            workbook.Save();
        }


我面临的问题是,即使单元格为null,它也会不断循环通过excel,并且不遵循if条件

最佳答案

首先,您的代码总是删除第1行。您应该在所有行中移动。第二,每当删除时,总是从结尾开始,然后朝开头移动,否则您可能会错过行。问题是,如果删除第4行,然后第5行变为4,然后跳过第5行,请参见下面的代码。

        for (int i = rowCount - 1; i >= 1; i--)
        {
             if (usedRange.Cells[i, 1] == null)
             {
                // Delete entire row if first cell is empty
                usedRange.Cells[i, 1]).EntireRow.Delete(null);
             }

        }
        workbook.Save();

关于c# - 无法使用C#从Excel文件中删除空行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57723671/

10-17 02:07