Как получить число строк в EPPlus OpenXML (С#)

Я искал его и нашел ссылку С# EPPlus OpenXML подсчитывает строки

int iRowCount = currentWorksheet.Dimension.End.Row - currentWorksheet.Dimension.Start.Row;

Но это дает значение 4721 как счетчик. Он дает весь ряд строк, как я могу получить количество строк строк, которое имеет значение. Что-то вроде UsedRange.

Ответ 1

Вы можете получить счет на workBook.Worksheets.Count

Ответ 2

Фактический ответ на возврат числа строк и столбцов используемого диапазона (размер) листа...

int iColCnt = Worksheet.Dimension.End.Column
int iRowCnt = Worksheet.Dimension.End.Row

Но вам нужно проверить, имеет ли значение Worksheet.Dimension значение null, поскольку для новых рабочих листов или пустых листов свойство Dimension будет равно null.

Ответ 3

Пустые ячейки на листе могут содержать форматирование, заставляющее их подсчитываться в листе. Размер:

Пустые ячейки можно очистить, используя следующие шаги: http://office.microsoft.com/en-au/excel-help/locate-and-reset-the-last-cell-on-a-worksheet-HA010218871.aspx

Я написал эту функцию, чтобы получить последнюю строку, содержащую текст:

int GetLastUsedRow(ExcelWorksheet sheet) {
    var row = sheet.Dimension.End.Row;
    while(row >= 1) {
        var range = sheet.Cells[row, 1, row, sheet.Dimension.End.Column];
        if(range.Any(c => !string.IsNullOrEmpty(c.Text))) {
            break;
        }
        row--;
    }
    return row;
}

Ответ 4

Существует способ получить ячейки, которые не имеют значения, используя метод Where. Мы можем использовать его, чтобы найти самую последнюю ячейку (и ее строку в этом случае) из листа или диапазона.

int lastRow = sheet.Cells.Where(cell => !cell.Value.ToString().Equals("")).Last().End.Row;

О методе Where: https://msdn.microsoft.com/en-us/library/bb534803(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1