2016-04-07 9 views
1

Использование Excel Interop, вы можете получить количество строк в использовании простыней так:Что такое аналог рабочего листа Excel Interop.UsedRange.Rows в Spreadsheet Light?

_xlSheet.UsedRange.Rows 

(где «_xlSheet» является Excel.Worksheet).

Что такое эквивалент в свете электронных таблиц?

Вы можете добавить таблицу следующим образом:

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

... но как вы можете получить доступ к этой рабочей таблицы допрашивать его подсчитывать его использовали ряд?

ответ

2

После добавления рабочего листа он также активен. Это означает, что вы можете получить WorksheetStatistics по методу GetWorksheetStatistics. Этот экземпляр статистика имеет 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)); 
} 
+0

Если я хочу, чтобы получить доступ к NumberOfRows в различных местах/точках, мне нужно позвонить GetWorksheetStatistics() сначала каждый раз, или же обращающиеся NumberOfRows убедитесь что счетчик текущий? –

+1

Документы для GetWorksheetStatistics говорят: * ПРИМЕЧАНИЕ. Информация только в точке извлечения. * @ B.ClayShannon – rene

0

Добавление в ответ Рене:

Поскольку доступ к статистики Свойство 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(); 

 Смежные вопросы

  • Нет связанных вопросов^_^