我必須從Excel表格中刪除空單元格。我們用它來創建和編輯ClosedXML文件。使用ClosedXML刪除多個單元格
例的Excel之前:
XX XX XX XX XX
XX XX XX XX XX
XX XX XX XX XX XX
XX XX XX XX XX XX
例的Excel後:
XX XX XX XX XX
XX XX XX XX XX
XX XX XX XX XX XX
XX XX XX XX XX XX
我的第一次測試是在所有空單元格一個foreach。但是這不起作用,因爲只有行中的第一個單元格將被刪除。
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分鐘。有誰知道更好的方法?