Post

Comment configurer CSVHelper pour ne pas tenir compte des lignes vides ?

Pré-requis

  • CSVHelper v30
  • .NET 6+

TL;DR

Lors de la configuration de CSVHelper, ajouter la configuration suivante pour la propriété ShouldSkipRecord :

1
2
3
4
5
var csvConfiguration = 
    new CsvConfiguration()
    {
        ShouldSkipRecord = args => args.Row.Parser.Record.All(string.IsNullOrWhiteSpace)
    };

Qu’est ce qu’une ligne vide ?

Si on considère le fichier CSV suivant :

Entete 1;Entete 2;Entete 3;
bla;1;2

;;;
Trois;Une;0

Nous souhaitons que la ligne 3 et 4 ne soient pas traités par CSVHelper.

En effet, par défaut, CSVHelper va traiter ces lignes et affecter des valeurs vides dans chaque propriété sur lesquels auront été mappés nos en-têtes.

Quelle configuration appliquer pour ne pas tenir compte des ces lignes ?

Lors de la configuration de CSVHelper, ajouter la configuration suivante pour la propriété ShouldSkipRecord :

1
2
3
4
5
var csvConfiguration = 
    new CsvConfiguration()
    {
        ShouldSkipRecord = args => args.Row.Parser.Record.All(string.IsNullOrWhiteSpace)
    };

Cela indique à CSVHelper que, lorsque chaque valeur d’une ligne est vide ou remplie d’espace, il ne faut pas prendre en compte cette ligne.

Sources


Je vous ai déjà parlé de ma règle de dév favorite ? Dans le doute, je la remets ci-dessous !

you SHOULD apply the famous boy scout rule : you SHOULD leave the code cleaner than you found it.

Cet article est sous licence CC BY 4.0 par l'auteur.