2014-09-24 54 views
1

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

enter image description here

正如你可以看到,对于列A所使用的区域是只有3行,而对于列B是5行。当我用我现在的代码:

int rows = sheet.UsedRange.Rows.Count; 

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

回答

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#,所以你需要处理任何需要的转换;但认为它可能有帮助。

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; 
+0

这也给UsedRange的最后一行值。 @内存 – Gokul 2017-06-19 06:33:52