2017-01-31 4 views
3

Я использую ClosedXML с C# для изменения книги Excel. Мне нужно найти последний номер строки, но .RowCount() подсчитывает количество строк на листе. Таким образом, он возвращает 1 миллион строк, когда их всего несколько тысяч. Я пробовал LastRowUsed(), но это не возвращает int, и для него нет метода .row. Как я могу получить последнюю строку в int?ClosedXML find last row number

+0

Даниэль, я думаю, что вы отметили неправильный комментарий в качестве ответа. –

ответ

2

Вы можете использовать RowsUsed();

var wb = new XLWorkbook(); 
    var ws = wb.worksheets.add("data"); 
    var totalRows = ws.RowsUsed().Count(); 
+0

А потом оттуда вы можете выяснить, какая строка - последняя строка. – bird

+0

Другие ответы лучше. –

+0

Это не работает должным образом, если есть скрытые строки. [@Raidri] (https://stackoverflow.com/users/2610249/raidri) ответ - идеальный ответ на этот вопрос. –

3

Вы должны использовать .LastRowUsed()

Более полезные вещи из official GitHub repo:

range.FirstCell() 
range.FirstCellUsed() 
range.FirstColumn() 
range.FirstColumnUsed() 
range.FirstRow() 
range.FirstRowUsed() 

range.LastCell() 
range.LastCellUsed() 
range.LastColumn() 
range.LastColumnUsed() 
range.LastRow() 
range.LastRowUsed() 
7

Функция LastRowUsed() возвращает объект строки. Используйте

worksheet.LastRowUsed().RowNumber() 

, чтобы получить номер последней используемой строки.