/// <summary> /// Récupère la liste des lignes du tableau excel sous le format du type passé en paramètre. /// </summary> /// <typeparam name="TRow">Le type de l'objet de retour.</typeparam> /// <returns>La liste des lignes du fichier Excel.</returns> public ICollection <TRow> ReadRows <TRow>() where TRow : new() { var initialRow = _currentCell.RowIndex; var rows = new List <TRow>(); /* Parcourt les lignes. */ while (true) { /* On lit la ligne. */ var row = ReadRow <TRow>(); if (row == null) { break; } rows.Add(row); /* Passe à la ligne suivante. */ _currentCell = _currentCell.ShiftRow(1); } /* Retourne à la première ligne. */ _currentCell = _currentCell.ChangeRow(initialRow); return(rows); }
/// <summary> /// Ecrit une liste de lignes démarrant à la cellule courante. /// Les valeurs de cellules sont lues dans l'ordre des propriétés du bean <code>row</code>. /// Les lignes sont écrites dans l'ordre de la collection. /// </summary> /// <typeparam name="TRow">Type de la ligne.</typeparam> /// <param name="rows">Liste des beans de ligne.</param> /// <returns>Le builder.</returns> public ExcelTemplateBuilder WriteRows <TRow>(ICollection <TRow> rows) { var initialRow = _currentCell.RowIndex; /* Parcourt les lignes. */ foreach (var row in rows) { /* Ecrit la ligne. */ WriteRow(row); /* Passe à la ligne suivante. */ _currentCell = _currentCell.ShiftRow(1); } /* Retourne à la première ligne. */ _currentCell = _currentCell.ChangeRow(initialRow); return(this); }