epplus openxml rowカウントを取得する方法(c#)
質問
私はそれを検索して、リンクを見つけました c#epplus openxmlカウント行
int iRowCount = currentWorksheet.Dimension.End.Row - currentWorksheet.Dimension.Start.Row;
しかし、これはカウントとして4721の値を与えます。行全体にカウントされています。価値のある行の行数を取得するにはどうすればよいですか。 UsedRangeのようなもの。
解決
あなたはそれによってカウントを得ることができます workBook.Worksheets.Count
他のヒント
シートの使用済み範囲(二量体)の行と列の数を返すための実際の答えは...
int iColCnt = Worksheet.Dimension.End.Column
int iRowCnt = Worksheet.Dimension.End.Row
ただし、新しいワークシートまたは空のワークシートの場合、Dimensionプロパティはnullになるため、Worksheet.dimensionがnullであるかどうかをテストする必要があります。
ワークシートの空のセルは、シートの次元でカウントされるためのフォーマットを含む場合があります。
空のセルは、こちらの手順を使用してクリアできます。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 Methodを使用して値がないセルを取得する方法があります。それを使用して、ワークシートまたは範囲から最後のセル(およびこの場合のその行)を見つけることができます。
int lastRow = sheet.Cells.Where(cell => !cell.Value.ToString().Equals("")).Last().End.Row;
所属していません StackOverflow