質問

私はそれを検索して、リンクを見つけました 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;

方法について: https://msdn.microsoft.com/en-us/library/bb534803(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top