使用Microsoft的Excel Interop我正在阅读电子表格。我没有问题得到整个工作表的使用范围,但我只想得到用于一列的行数。这是我的片材的一个示例:仅在Excel Interop中为一列获取UsedRange
正如你可以看到,对于列A所使用的区域是只有3行,而对于列B是5行。当我用我现在的代码:
int rows = sheet.UsedRange.Rows.Count;
..它总是返回“5”。我如何指定我只想要一个单元格的使用范围?
使用Microsoft的Excel Interop我正在阅读电子表格。我没有问题得到整个工作表的使用范围,但我只想得到用于一列的行数。这是我的片材的一个示例:仅在Excel Interop中为一列获取UsedRange
正如你可以看到,对于列A所使用的区域是只有3行,而对于列B是5行。当我用我现在的代码:
int rows = sheet.UsedRange.Rows.Count;
..它总是返回“5”。我如何指定我只想要一个单元格的使用范围?
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#,所以你需要处理任何需要的转换;但认为它可能有帮助。
要获得在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;
这也给UsedRange的最后一行值。 @内存 – Gokul 2017-06-19 06:33:52