【问题标题】:c# interop excel range find first and last populated valuec# interop excel range 查找第一个和最后一个填充值
【发布时间】:2018-08-30 21:51:58
【问题描述】:

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

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

工作表如下所示:

firstColumn 返回 8。这是正确的。但我不知道如何获取最后一个填充单元格的列位置。

还有

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

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

我希望得到 1 个。

任何指针?

【问题讨论】:

    标签: c# excel range vsto office-interop


    【解决方案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 应该给出它的行和列值。
    希望这会有所帮助。

    【讨论】:

    • 我可以使用 xlCellTypeLastCell 来查找最后一个单元格。如何获得第一个非空元素的位置?
    • 您查看过 UsedRange 吗? msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2021-05-07
    • 2016-12-31
    相关资源
    最近更新 更多