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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c #interop excel range查找第一个和最后一个填充值相关的知识,希望对你有一定的参考价值。

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

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设置如下时,为firstColumn返回12:

enter image description here

我期待得到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应该给出它的行和列值。 希望这可以帮助。

以上是关于c #interop excel range查找第一个和最后一个填充值的主要内容,如果未能解决你的问题,请参考以下文章

Interop.Excel 本地化和 Range.Formula 与 Formulalocal

C#,Microsoft interop,Excel数字格式问题

vsto 如何在range中插入变量

C#Office.Interop.Excel.dll读写表格

C#Office.Interop.Excel.dll读写表格

C#Office.Interop.Excel.dll读写表格