EPPlus.Core.Extensions icon indicating copy to clipboard operation
EPPlus.Core.Extensions copied to clipboard

Settting header row index in "ToList" method

Open JPiris88 opened this issue 5 years ago • 1 comments

Hi.

I think it'd be a good idea to have a "headerRowIndex" parameter in "ToList" extension method to start reading the rows from a certain row index. "CheckAndThrowIfDuplicatedColumnsFound" and "CheckHeadersAndThrow" methods have this parameter and the validation works well.

JPiris88 avatar Jan 21 '20 10:01 JPiris88

This can be a possible solution:

// The header isn't on the first row but on the fifth
int headerRowIndex = 5;

// Create a temp worksheet to copy the rows from the original one to the first row
var rowsWorksheet = package.AddWorksheet("Rows");

worksheet.Cells[
        FromRow: headerRowIndex,
        FromCol: 1,
        ToRow: worksheet.Dimension.End.Row,
        ToCol: worksheet.Dimension.End.Column
    ]
    .Copy(rowsWorksheet.Cells[
        FromRow: 1,
        FromCol: 1,
        ToRow: worksheet.Dimension.End.Row - headerRowIndex,
        ToCol: worksheet.Dimension.End.Column
    ]);

var rows = rowsWorksheet.ToList<MyClass>();

JPiris88 avatar Jan 21 '20 12:01 JPiris88