使用Microsoft的Excel Interop我正在阅读电子表格。获取整个工作表的使用范围没有问题,但我想获得仅用于一列的行数。以下是我的工作表示例:
如您所见,A列的使用范围仅为3行,而B列则为5行。当我使用我当前的代码时:
int rows = sheet.UsedRange.Rows.Count;
..它总是返回" 5"。如何指定我只想要一个单元格的使用范围?
答案 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;