begin process at 2012 02 11 11:05:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > CSVSHARP. DLL D'IMPORT/EXPORT DE CONTENU AU FORMAT CSV

CSVSHARP. DLL D'IMPORT/EXPORT DE CONTENU AU FORMAT CSV


 Information sur la source

Note :
Aucune note
Catégorie :API Source .NET ( DotNet ) Classé sous :CSVSharp, csv, import, export Niveau :Initié Date de création :19/01/2008 Date de mise à jour :21/01/2008 16:28:30 Vu / téléchargé :7 496 / 488

Auteur : heriquet

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 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 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();
  • }
// 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 :-)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

20 janvier 2008 17:21:03 :
Champs "Source" complété...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) GETSYSTEMTIME ET SETSYSTEMTIME par Arnotic
Source avec Zip Source avec une capture Source .NET (Dotnet) [SILVERLIGHT] UN GÉNÉRATEUR INTERACTIF D'ARBRES DE HUFFMAN par loudadyassine
Source avec Zip Source .NET (Dotnet) [C#2008] OBSERVER L'ACTIVITÉ INPUT (CLAVIER SOURIS) DE L'UTI... par PCPT
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DE L'API VIRTUAL DISK IMAGE DE WINDOWS 7 par Willi
Source avec Zip Source .NET (Dotnet) CHESS GAME CORE - LIBRAIRIE JEU D'ÉCHEC EN C# par Bidou

 Sources en rapport avec celle ci

Source avec Zip EXPORTATION DE FICHIER CSV VERS UNE TABLE SQLSERVER par imothepe_33
Source .NET (Dotnet) TRANSACTIONS ORACLE SQL SERVER CSV AVEC C# par maher_iag_2004
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPORTER SCRIPT SQL SQL SERVER (CREATE - DROP - INSERT - TAB... par citt
Source avec Zip Source .NET (Dotnet) MOTEUR CSV ET RECORDSET PERSO par SwitchApocalyps
Source avec Zip Source avec une capture Source .NET (Dotnet) ORACLE IMPORT / EXPORT par nseveno

Commentaires et avis

Commentaire de Bidou le 20/01/2008 17:56:26 administrateur CS

J'ai pas testé le code, mais juste regardé le contenu des fichiers via le site...

- La classe CSVSaveFileDialog n'est vraiment pas utile! Du moins, je ne vois pas son utilité...
- Je suis sceptique concernant la classes CSVSharp. Est-elle vraiment utile, pourquoi abstract? Visiblement non, ou en tout cas tu n'utilises pas les concepts donnés par une telle classes abstraite.
- La méthode GetSeparator est-elle vraiment utile??

Voilà voilà pour une première lecture.

Commentaire de heriquet le 20/01/2008 18:07:14

Tout d'abord merci pour le commentaire... c'est toujours instructif d'avoir un retour !

CSVSaveFileDialog permet d'avoir un SaveFileDialog customisé... on peut choisir l'extension de fichiers... et ce en rapport avec l'utilisation de fichiers csv. Un peu gadget mais je l'utilise bel et bien...

GetSeparator permet en interne de retrouver le caractère du séparateur spécifié... elle est utilisée par les classes CSVReader et CSVWriter d'ou un héritage de la classe CSVSharp et on ne peut pas l'implémenter donc je l'ai mise abstract. Si ce n'est pas juste, qu'aurais-tu mis ?

Commentaire de Bidou le 20/01/2008 18:23:54 administrateur CS

SaveFileDialog est sealed (comme indiqué dans tes commentaires), on ne peut donc pas la customiser. CSVSaveFileDialog se contente juste de setter quelques properties par défaut sur ce Dialog, ce qui semble ne pas avoir vraiment de sens (pourquoi ne pas directement utiliser les properties et méthodes de SaveFileDialog ??). En gros, tu as fait un wrapper inutile :)

GetSeparator retourne le Seperator courant (issu de l'enum). Pourquoi ne pas appelé simplement ToString sur l'enum par exemple? La méthode me paraît pas spécialement indispensable...

Une classe abstract sans méthode abstract a t'elle vraiment un sens? Je n'en suis pas vraiment persuadé... Si c'est juste pour mettre une méthode ou une ou deux properties en commun, alors tu ferais mieux de les dupliqué dans chacune des classes (voire faire une classes commune, non abstraite, mais là encore, niveau conception, je ne pense pas que ça soit l'idéal...)

Commentaire de bir le 29/06/2008 00:19:09

ce code est tres interessant je vais tester

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Import et export de données depuis et vers une base ACCESS [ par veridik ] Bonjour à tous, Je suis en charge de modifier un logiciel (en C#) pour qu'il puisse importer des infos sur certaines tables ACCESS et de pouvoir Import d'un fichier .csv dans une base mysql [ par alias666 ] bonjour à tous,Je début aujourd'hui même en C# sous Visual Studio 2003, et je voudrai savoir comment importer un fichier csv dans une table mysql, je Import csv dans datagridview [ par nicolas3556 ] Bonjour, je travaille sur une application c# ou je dois importer un fichier csv dans un datagridview.Le fichier s'importe bien mais a partir d'un cert Convertir CSV en Tab delimited [ par olibara ] BonjourCe n'est peut etre pas le meilleur forum pour cette question mais comme c'est un besoin qui peut etre utile partout j'essaye !Je dois convertit Problème de lecture d'un string dans une base ODBC texte [ par mdelahais ] Bonjour,J'ai un fichier csv et je dois vérifier le contenu de certaines de ces colonnes. Pour cela, j'utilise une connexion ODBC et je vérifie le cont Export excel sur serveur [ par sophie316 ] Bonjour à tous,Je dévellope une application en C# dans laquelle je fais un export Excel de saisies, ce qui marche très bien en local.Mais lorsque je l Probléme de Date [ par floflo69290 ] Bonjour,Je viens de reprendre une application en C# et j'ai un soucis :Je récupére les valeurs du jour, mois et année avec des string et je voudrais r Sauvegarde de stream dans un .csv, .xls... [ par renyone ] Bonjour à tous. Je vous explique mon problème: j'interroge un server exchange pou récupérer des pieces jointes dans des mails. Ces pieces jointes sont CSV to XML [ par angrodmadje ] Bonjour tout le mondevoici mon problème :j'ai un fichier CSV que je dois transformer en XML, jusque là pas de soucis, ça marche, sauf que dans le CSV Serialization d'une classe [ par olibara ] Bonjour Je voudrais comprendre la methode la plus simple pour sauver le contenu d'une classe dans un fichier afin de la recuperer ensuite Bien sur


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,557 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales