代码之家  ›  专栏  ›  技术社区  ›  ProgSky

c#interop excel范围查找第一个和最后一个填充的值

  •  0
  • ProgSky  · 技术社区  · 6 年前

    我有一个范围(一行),我想知道该范围中第一个和最后一个填充值的列位置。这就是我计算位置的方法。

    var xlRange = (Excel.Range)currentSheet.Cells[10, 1].EntireRow; // 10th row.
    long firstColumn= (long)xlRange.get_End(Excel.XlDirection.xlToRight).Column;
    

    工作表如下:

    enter image description here

    第一列返回8。这是正确的。但我不知道如何得到最后一个填充单元的列位置。

    阿尔索

    long firstColumn= (long)xlRange.get_End(Excel.XlDirection.xlToRight).Column;
    

    返回12 firstColumn 当excel设置如下时:

    enter image description here

    我本来想得到1分。

    有指针吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   ɐlǝx    6 年前

    您可以使用Excel提供的SpecialCells方法。 https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-specialcells-method-excel

    在您的情况下,您希望找到最后一个单元格,以便: xlCellTypeLastCell细胞 没有值,即缺少类型 .

    Excel.Range lastCell = workSheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing); 
    Excel.Range myRange = workSheet.get_Range("B1", lastCell);
    

    lastCell应该给出它的行和列值。
    希望这有帮助。