IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Import CSV dans un champ table


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut Import CSV dans un champ table
    Bonjour à tous

    Voila, j'ai besoin d'afficher dans un champ table toutes la valeur d'un fichier csv (qui peut comporter un nombre variable de colonnes).

    Afficher tout dans une table n'est pas un problème, le soucis est que mes colonnes de ma tables doivent être identifiées (en gros je fais un logiciel d'e-mailling et le champ comportant les adresses emails doit être identifié comme colonne "mail" car je fais ensuite des traitements sur cette colonne, pareil pour les nom et prénoms par exemple car lors de l'envoi d'email il sera possible de remplacer une chaine "[nom]" par le nom inscrite dans ma colonne "nom").

    Pour faire court lorsque l'utilisateur importe son CSV je dois savoir quel champ correspond à quelle colonne ...

    Je ne sais pas si c'est clair car ce n'est pas simple à expliquer mais dans le cas contraire j'attends vos questions afin de vous éclairer au mieux.

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Bonjour,

    Généralement, la première ligne comporte les noms de colonnes ...

    Si ce n'est pas le cas, l'ordre des colonnes est-il connu et fixe ?

    Hemgé

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut
    En effet je n'avais pas pensé que la première ligne comportait les libellés.
    Mais comment faire pour ensuite affecter chaque valeur à la bonne colonne ?

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Je crois que vous devriez commencer par faire une petite recherche dans le Forum, simplement sur "CSV".

    Je viens de jeter un œil.

    Il y a de nombreuses discussions qui vous permettront de vous familiariser avec le sujet et d'élaborer une solution, que nous vous aiderons à mettre au point si cela est encore nécessaire.

    Bon travail

    Hemgé

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut
    Je vais regarder cela.

    Merci beaucoup pour votre aide

  6. #6
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Un code que j'avais fait il y a quelques années...

    Il faut une table "TABLE_MaTable" avec une colonne de type chaîne "COL_1"

    Le code qui charge un fichier csv et rempli la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    tabMontableau est un tableau de * par  * chaînes
    sFichierCSV est une chaîne
    sFichierCSV = fChargeTexte("D:\export.csv")
    CSVVersTableau(sFichierCSV,tabMontableau,";")
    nNb_Ligne est un entier = TableauInfo(tabMontableau,tiNombreLignes)
    nNb_Colonne est un entier = TableauInfo(tabMontableau,tiNombreColonnes)
    nNb_col_a_supprimer est un entier = TABLE_MaTable..NombreColonne
    sLigne_table est une chaîne
     
    // vide la table
    TableSupprimeTout(TABLE_MaTable)
     
    // supprime colonnes précédemment créées
    POUR i = 2 A nNb_col_a_supprimer	
    	ChampSupprime("TABLE_MaTable.COL_"+ i)
    FIN
     
    // crée les colonnes
    TABLE_MaTable.COL_1..Libellé = tabMontableau[1,1]
    POUR i = 2 A nNb_Colonne
    	ChampClone({"TABLE_MaTable.COL_1",indChamp},"COL_"+i,{"TABLE_MaTable",indChamp}..NombreColonne + 1)
    	{"TABLE_MaTable.COL_"+i,indChamp}..Libellé = tabMontableau[1,i]
    FIN
     
    // rempli la table
    POUR i = 2 A nNb_Ligne
    	sLigne_table = ""
    	POUR j = 1 A nNb_Colonne
    		sLigne_table += tabMontableau[i,j] + TAB
    	FIN	
    	sLigne_table = Gauche(sLigne_table,Taille(sLigne_table)-1)
    	TableAjoute(TABLE_MaTable,sLigne_table)
    FIN
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut
    Merci Laurent pour ta contribution, j'ai utilisé ton code et ça fonctionne sauf que à l'origine j'ai 2 colonnes qui devront etre par défaut dans ma table (une colonne "Activer" contenant un interupteur pour chaque ligne, et une colonne "Etat" qui affichera l'état du traitement de la ligne).

    Sauf que je n'arrive pas à insérer ces deux colonnes supplémentaires...
    J'ai essayé de plusieurs façons : en ajoutant mes 2 colonnes par programmation en utilisant champClone après que ton code soit éxécuté mais ça ne fonctionne pas (aucun remplissage).

    J'essaye d'insérer dans la premiere ligne du tableau (donc dans les entetes) mes colonnes supplémentaires mais je n'y arrive pas, je ne sais pas comment faire.

    J'avoue que je tourne un peu en rond :s

  8. #8
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Ajoute tes 2 colonnes en dur
    COL_Activer : interrupteur
    COL_Etat : Chaîne
    avant
    COL_1 : Chaîne

    Puis dans le code il faut tenir compte de ces 2 colonnes dans les colonnes à supprimer. Pour cela...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nNb_col_a_supprimer est un entier = TABLE_MaTable..NombreColonne - 2
    Ça devrait marcher...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut
    Oui j'ai fait un peu le même genre que ça et j'ai le même résultat, c'est à dire que la table est bien remplie mais le contenu ne correspond pas à la colonne.

    Le fait d'avoir 2 colonnes supplémentaire décale le chargement du contenu, j'ai essayé de rajouter +2 à nNbColonne mais j'ai une erreur.

  10. #10
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Autant pour moi, il faut décaler le remplissage de la table avec 2 TAB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // rempli la table
    POUR i = 2 A nNb_Ligne
    	sLigne_table = TAB + TAB
    	POUR j = 1 A nNb_Colonne
    		sLigne_table += tabMontableau[i,j] + TAB
    	FIN	
    	sLigne_table = Gauche(sLigne_table,Taille(sLigne_table)-1)
    	TableAjoute(TABLE_MaTable,sLigne_table)
    FIN
    En espérant que cette fois ce soit bon...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut
    Ha ba voila c'etait simple en fait

    Un grand MERCI, pour votre aide ça m'a vraiment aidé.
    C'est super sympa de faire partager votre experience

    Bonne soirée

Discussions similaires

  1. [WD15] Importer le contenu d'un fichier texte dans un champ table
    Par Menadel dans le forum WinDev
    Réponses: 6
    Dernier message: 21/08/2013, 15h00
  2. Importer csv dans une table sql via Python
    Par bacheld2 dans le forum Général Python
    Réponses: 6
    Dernier message: 22/04/2013, 23h01
  3. [Débutant] Import CSV dans Table MDB il me manque quelque chose
    Par progscoubi dans le forum C#
    Réponses: 5
    Dernier message: 02/11/2011, 11h00
  4. Importer CSV dans MySQL
    Par The_freeman dans le forum Administration
    Réponses: 6
    Dernier message: 14/02/2006, 22h18
  5. Recherche n'import où dans le champ
    Par Gnoutman dans le forum Access
    Réponses: 7
    Dernier message: 04/11/2005, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo