需要在C#中找到Excel范围的起点和终点

Tom*_*m A 6 c# com import excel

我正在尝试使用COM从C#读取excel文件,并且可以将其打开并加载就好了.但是,我不想使用工作表上的所有数据(它每月扩展),只是从工作表顶部下方开始的某个子集(标题第3行,数据第4行)并结束.我现在可以获得一个表示整个数据集的范围Excel.Worksheet.UsedRange,但接下来我需要将其操作到所需的范围,或者(最好)找到终点以进入我的实际数据检索的另一个范围.谁能告诉我怎么做这些?谢谢.

Sta*_* R. 7

我不确定你要做什么.但这里有一些例子.

假设我有以下范围:

Excel.Worksheet sheet = this.Application.ActiveSheet as Excel.Worksheet;
Excel.Range range = sheet.get_Range("A1", "B5") as Excel.Range;
Run Code Online (Sandbox Code Playgroud)

n行数减少范围:

int n = 1;
int rows = range.Rows.Count;
int cols = range.Columns.Count;

Excel.Range newRange = range.get_Offset(n, 0).get_Resize(rows-n,cols);
newRange.Select(); //will select the new range will be 1 row lower
Run Code Online (Sandbox Code Playgroud)

要移动你的底线

Excel.Range newRange = range.get_Resize(rows-n,cols);
newRange.Select(); //will select the new range will be 1 row higher
Run Code Online (Sandbox Code Playgroud)

我假设你可以弄清楚如何将它左右移动.

get_Offset() 将移动整个范围,然后您需要调整范围.

编辑:现在我知道你想要什么.

要选择最后一个单元格:

Excel.Range lastCell = range.Cells[rows, cols] as Excel.Range;
lastCell.Select();
Run Code Online (Sandbox Code Playgroud)

现在您可以像这样使用自己的起点:

Excel.Range newRange = sheet.get_Range("B1", lastCell);
newRange.Select();
Run Code Online (Sandbox Code Playgroud)