如何获得EPPlus OpenXML行数(c#)

我search了它,发现链接C#EPPlus OpenXML计数行

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

但是这个计数值为4721。 这是给整个行数,我怎么可以得到具有价值的行的行数。 像UsedRange一样。

你可以通过workBook.Worksheets.Count得到计数

实际答案返回行的数目和UsedRange(维数)的一个工作表的列是…

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

但是您需要testingWorksheet.Dimension是否为空,因为对于新工作表或空工作表,Dimension属性将为空。

工作表中的空单元格可能仍包含格式,导致它们在工作表中计入尺寸:

可以使用以下步骤清空空单元格: 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; } 

有一种方法可以使用Where方法获取没有任何值的单元格。 我们可以使用它从工作表或范围中find最后一个单元格(在这种情况下是它的行)。

 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