Excel Interop的Worksheet.UsedRange.Rows在Spreadsheet Light中的模拟是什么?

使用Excel Interop,您可以获得表格所使用的行数,如下所示:

_xlSheet.UsedRange.Rows 

(其中“_xlSheet”是Excel.Worksheet)。

Spreadsheet Light中的等价物是什么?

您可以像这样添加工作表:

 var sl = new SLDocument(); . . . sl.AddWorksheet("SheetsToTheWind"); 

…但是,您如何访问该工作表以查询其使用的行数?

添加工作表后,它也是活动的。 这意味着您可以从GetWorksheetStatistics方法获取WorksheetStatistics 。 该统计信息实例具有NumberOfRows属性:

 // NOTE: The information is only current at point of retrieval. var stats = sl.GetWorksheetStatistics(); var rowcount = stats.NumberOfRows; 

如果您想知道所有工作表的行数,您可以执行以下操作:

 foreach(var name in sl.GetSheetNames()) { sl.SelectWorksheet(name); var stats = sl.GetWorksheetStatistics(); var rowcount = stats.NumberOfRows; Trace.WriteLine(String.Format("sheet '{0}' has {1} rows", name, rowcount)); } 

添加到rene的答案:

由于访问Statistics的NumberOfRows属性不会自动更新(每次都必须调用GetWorksheetStatistics()来获取最新的统计信息),我发现编写这个帮助方法很方便:

 private int GetCurrentNumberOfRows() { // This reference to "sl" assumes that you have declared "SLDocument sl;" and // instantiated it ("sl = new SLDocument();"), perhaps in your class' constructor var stats = sl.GetWorksheetStatistics(); return stats.NumberOfRows; } 

..然后根据需要调用它:

 int lastRow = GetCurrentNumberOfRows();