Csvsharp. dll d'import/export de contenu au format csv

Description

CSVSharp est un composant que j'ai développé l'an passé mais qui a dormi pendant un an, le temps que je remette de l'ordre et me décide à le publier !

Le but est comme son nom le sous-entend de fournir les services nécessaires à la lecture et l'écriture de fichiers CSV de la même façon que les flux traditionnaux, c'est à dire au travers de 2 classes CSVReader et CSVWriter.

Tout est écrit en C# mais le code compilé est bien sur compatible avec les autres langages .NET.

Source / Exemple :


// Exemple d'utilisation (fourni dans le zip) :

try
{
    CSVSharp.CSVSharp.Separators separator = CSVSharp.CSVSharp.Separators.Semicolumn;

    CSVWriter writer = new CSVWriter("export.csv", separator);
    writer.HeaderToCapitalLetters = true;
    // Insert a character like the separator you chosen to test that property
    writer.CheckTableContentSeparatorConflicts = true; 

    #region DataTable Setting

    DataTable dt = new DataTable("CSV");

    dt.Columns.Add("MembreID", Type.GetType("System.Int32"));
    dt.Columns.Add("Nom", Type.GetType("System.String"));

    DataRow dr = dt.NewRow();
    dr[0] = 1;
    dr[1] = "Eric";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr[0] = 2;
    dr[1] = "Marion";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr[0] = 3;
    dr[1] = "Amélie";
    dt.Rows.Add(dr);

    Console.WriteLine("Export running...");

    #endregion

    writer.CreateCSVFromDataTable(dt, true);
    
    CSVReader reader = new CSVReader("export.csv", separator, true);

    dt = reader.CreateDataTableFromCSV();

    #region Display of the content

    Console.Write("\nHEADER: ");

    if (reader.FirstRowIsHeader)
        Console.WriteLine("There are headers.\n");
    else
        Console.WriteLine("There are no headers.\n");

    Console.WriteLine("Dataset columns list:\n");
    foreach (DataColumn d in dt.Columns)
    {
        Console.WriteLine("\t" + d.ColumnName);
    }

    Console.WriteLine("\nDataset columns list:\n");
    foreach (DataRow d in dt.Rows)
    {
        Console.WriteLine("\t{0} - {1}", d[0], d[1]);
    }

    Console.WriteLine("\nImport done!");

    #endregion 
}
catch (CSVDataTableConflictsException ex)
{
    Console.WriteLine(ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message + "\n" + ex.StackTrace);
}
finally
{
    Console.ReadKey();
}

Conclusion :


Je serais intéressé par des feed-backs en tous genres. Critiques, améliorations, erreurs trouvées...

De même si vous l'utilisez, cela me ferait plaisir de le savoir car dans ce cas la publication n'aurait pas servi à rien :-)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.