仅在Excel Interop中将UsedRange用于一列

时间:2014-09-24 14:59:17

标签: c# excel interop office-interop

使用Microsoft的Excel Interop我正在阅读电子表格。获取整个工作表的使用范围没有问题,但我想获得仅用于一列的行数。以下是我的工作表示例:

enter image description here

如您所见,A列的使用范围仅为3行,而B列则为5行。当我使用我当前的代码时:

int rows = sheet.UsedRange.Rows.Count;

..它总是返回" 5"。如何指定我只想要一个单元格的使用范围?

2 个答案:

答案 0 :(得分:0)

Excel中的UsedRange适用于工作表而不是单个列。见here。 您可以使用以下内容获取特定列的最后一行:

With yourExcelSheet
    lrow = .Cells(.Rows.Count, lrCol).End(Excel.XlDirection.xlUp).Row
End With

在哪里' yourExcelSheet'是工作表,需要声明/分配,' lrow'是你需要的最后一行,' lrcol'是列号(A = 1,B = 2等)

Apols但这段代码来自vb.net/vba而非c#,因此您需要处理任何所需的转换;但是认为它可能会有所帮助。

答案 1 :(得分:0)

要获取A列中的旧单元格,您可以尝试这种方式

// Get the last cell used in the Column A
 var lastCell = sheet.Range["A:A"].SpecialCells(
    Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell
)
    // get the lastColumn used
    int lastcolumn = lastCell.column;

    // get the lastRow used
    int lastRow = lastCell.Row;