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

标签 c# excel com import

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

最佳答案

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

假设我有以下范围:

Excel.Worksheet sheet = this.Application.ActiveSheet as Excel.Worksheet;
Excel.Range range = sheet.get_Range("A1", "B5") as Excel.Range;

将范围向下移动 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

向上移动底行

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

我想您可以想出如何将它左右移动。

get_Offset() 将移动整个范围,然后您需要调整范围的大小。

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

选择最后一个单元格:

Excel.Range lastCell = range.Cells[rows, cols] as Excel.Range;
lastCell.Select();

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

Excel.Range newRange = sheet.get_Range("B1", lastCell);
newRange.Select();

关于c# - 需要在 C# 中找到 Excel 范围的起点和终点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290916/

相关文章:

c# - 设计器无法显示 XAML(类型“本地 :. .. 未找到”)

c# - 如何使用 Excel.Interop 将列表中的值填充到 Excel 中的一系列单元格?

c# - 安装 .NET COM+ dll

utf-8 - VBS Scripting.FileSystemObject 需要帮助编写 ANSI txt 文件

c# - PropertyGrid 滚动位置在设置时不改变

c# - 带恢复功能的 BouncyCaSTLe RSA 概率签名方案

java - 基于列从 Java 打印到 Excel 文件

c - Media Foundation 使用 C 而不是 C++

c# - 如何在没有 Entity Framework 提供程序的情况下在 .net core 中实现谷歌登录

vba - Range.Cells.Count 与 Range.Count