Мне нужно удалить пустые ячейки из таблиц Excel. Мы используем для создания и редактирования файлов ClosedXML.Удалить несколько ячеек с закрытымXML
Пример Excel-До:
XX XX XX XX XX
XX XX XX XX XX
XX XX XX XX XX XX
XX XX XX XX XX XX
Пример Excel-After:
XX XX XX XX XX
XX XX XX XX XX
XX XX XX XX XX XX
XX XX XX XX XX XX
Мой первый тест был Еогеасп над всеми пустыми клетками. Но это не работает, потому что только первая ячейка в строке будет удалена.
private void DeleteCell()
{
List<IXLCell> AllEmptyCells = ws.Cells().Where(w => String.IsNullOrEmpty(w.Value.ToString())).ToList();
foreach(IXLCell cell in AllEmptyCells)
{
cell.Delete(XLShiftDeletedCells.ShiftCellsLeft);
}
}
Мой второй тест работает, но для его завершения требуется много времени. При каждом вызове список будет создан новым, пока список не будет пустым.
private void DeleteCell()
{
List<IXLCell> AllEmptyCells = ws.Cells().Where(w => String.IsNullOrEmpty(w.Value.ToString())).ToList();
if(AllEmptyCells.Count > 0)
{
ws.Cell(AllEmptyCells.FirstOrDefault().Address).Delete(XLShiftDeletedCells.ShiftCellsLeft);
DeleteCell();
}
}
За 100 строк эта часть будет работать ~ 2 Мин. Кто-нибудь знает лучший способ?