首页 文章

c #interop excel range查找第一个和最后一个填充值

提问于
浏览
0

我有一个范围(一行),我想知道该范围内第一个和最后一个填充值的列位置 . 这就是我试图计算位置的方式 .

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

firstColumn返回8.哪个是正确的 . 但我不知道如何获得最后填充单元格的列位置 .

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

当excel设置如下时,返回12为 firstColumn

enter image description here

我期待得到1 .

任何指针?

1 回答

  • 1

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

    在您的情况下,您希望找到最后一个单元格:xlCellTypeLastCell没有值,即Type.Missing .

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

    lastCell应该给出它的行和列值 .
    希望这可以帮助 .

相关问题