ClosedXML:大型Excel文件删除列

时间:2017-09-04 13:53:13

标签: c# excel closedxml

我正在尝试使用ClosedXML操作大型Excel文件。它花了无限的时间来处理。例如..删除30MB文件中的10列,永远不会返回!是否有其他人遇到类似的ClosedXML问题。我的代码是在C#中。以下是样本。

protected void deleteYears(IXLWorksheet ws)
    {
        // Remove columns
        List<IXLColumn> deletecols = (from p in ws.Rows("6").CellsUsed()
                                      where p.Value.ToString().ToUpper().StartsWith("XYZ")
                                      select p.WorksheetColumn()).ToList<IXLColumn>();
        foreach (IXLColumn x in deletecols)
        {
            x.Delete();
        }
    }

1 个答案:

答案 0 :(得分:0)

你应该实施&#34;更好的lambdas&#34; https://github.com/ClosedXML/ClosedXML/wiki/Better-lambdas

protected void deleteYears(IXLWorksheet ws)
{
    // Remove columns
    List<IXLColumn> deletecols = ws
        .Row(6)
        .CellsUsed(c => c.Value.ToString().ToUpper().StartsWith("XYZ"))
        .Select(c => c.WorksheetColumn()).ToList();

    foreach (IXLColumn x in deletecols)
    {
        x.Delete();
    }
}