【问题标题】:How to get the cutted column range in ClosedXML?如何在 ClosedXML 中获取截断的列范围?
【发布时间】:2015-07-23 07:50:46
【问题描述】:

我想将数据验证和样式应用于列范围,但没有标题单元格。现在我分两步做:

  • 将规则应用于列范围
  • 清除标题单元格

它有效,但我必须在所有其他单元格之后编辑标题单元格。而且它看起来像一个 hack,可能有更好的方法。

那么,如何选择没有顶部单元格的列?

【问题讨论】:

    标签: c# excel closedxml


    【解决方案1】:

    如果您知道要设置样式的最后一行的编号,您可以像这样使用Range()

    worksheet.Range(2, col1, row, col2).Style....;
    

    如果没有,您可以从列范围中获取 Cells() 并像这样跳过第一行:

    worksheet.Columns(col1, col2).Cells().Where(c => c.WorksheetRow().RowNumber() != 1).Style....;
    

    【讨论】:

    • 过滤和编辑从第二个到底部的所有单元格是非常昂贵的操作。代码运行几分钟,结果文件大约 10MB。这显然是一种错误的方式
    • 尝试使用CellsUsed() 而不是Cells()
    • 尚未使用任何单元格
    • 恐怕没有比你原来的方法更好的替代方法了。
    【解决方案2】:

    如果 myRange 是您的列原始范围(包括标题行),如何:

    var rangeWithoutHeader = worksheet.Range(myRange.FirstCell().CellBelow(), myRange.LastCell());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 2023-01-06
      • 2011-12-31
      • 2016-12-16
      相关资源
      最近更新 更多