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 :

Exporter une table en CSV


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 61
    Points : 57
    Points
    57
    Par défaut Exporter une table en CSV
    Bonjour à tous,

    Débutant en Windev, Je cherche une fonction du style TableVersExcel qui me permette de créer un fichier CSV d'après les données d'un objet Table...

    Merci...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 61
    Points : 57
    Points
    57
    Par défaut
    Le code aura probablement cette tête là, mais :
    - je ne sais pas comment retrouver le nom de mes entetes de colonnes...
    - je ne suis pas sur que ca soit tres performant d'ecrire les lignes une par une...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    NBLignes=ListeOccurrence(TABLE_Table1)
    NBColonnes = TABLE_Table1..Taille
     
    POUR Idx=1 A NBLignes
    	Str=""
    	POUR Idy=1 A NBColonnes
    		Str=Str + ";" + TABLE_Table1[Idx,Idy]
    		//Ecrit Ligne le fichier
    	FIN
    FIN

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 103
    Points
    1 103
    Par défaut
    Plus propre encore je pense : voir l'aide sur TableauVersCSV.
    Par contre il faudra tout passer en tableau avant.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 61
    Points : 57
    Points
    57
    Par défaut
    Je ne trouve rien sur "TableauVersCSV"... Je suis en Windev11...

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 103
    Points
    1 103
    Par défaut
    Citation Envoyé par achestyx Voir le message
    Je ne trouve rien sur "TableauVersCSV"... Je suis en Windev11...
    Ah oui, désolé, je l'ai vu sur 12 et 14
    Ton code est bon dans ce cas, pour les précisions demandées par contre:
    • Lister les colonnes d'une table : TableEnumèreColonne (j'espère qu'elle existe en 11)
    • Accéder à une donnée en n'ayant que le nom de la variable qui la contient : opérateur {} (voir également "indirection")
    • Pour la vitesse d'écriture : si c'est sur le disque sur lequel tu écris tu ne verras pas la différence. ce qui compte c'est de n'ouvrir le fichier qu'une seule fois. J'ai un export de ce type (16000 lignes environ, poids 1,7Mo)et je le fais en écriture directe.

    Penses par contre à une chose : si tes valeurs contiennent des points-virgules et/ou des retours chariots, il faut les protéger

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 61
    Points : 57
    Points
    57
    Par défaut
    Merci pour les réponses.

    TableEnumèreColonne me retourne le "nom de l'objet" colonne (en l'occurrence COL1 COL2 etc) mais il ne me retourne pas la chaine de caractere de l'entete de la colonne. (A noter que ma table a été créée dynamiquement)...

    J'en suis là :

    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
     
    PROCEDURE ExportCSV()
    NBLignes est un entier
    NBColonnes est un entier
    Idx, Idy est un entier
    Str est une chaîne 
    FicId est un entier
     
    FicId=fOuvre("c:\TEMP\TEstExport.csv",foCréation) 
     
    NBLignes=ListeOccurrence(FEN_Fenêtre1.TABLE_ListeData) 
    NBColonnes = FEN_Fenêtre1.TABLE_ListeData..Taille
     
    POUR Idy=1 A NBColonnes 
    	Str=Str +  TableEnumèreColonne( FEN_Fenêtre1.TABLE_ListeData, Idy)+ ";"
    FIN
    //Nom objet au lieu de entete...
    fEcritLigne(FicId, Str)	
     
    POUR Idx=1 A NBLignes
    	Str=""
    	POUR Idy=1 A NBColonnes
    		Str=Str + FEN_Fenêtre1.TABLE_ListeData[Idx,Idy]+ ";" 		
    	FIN
    	fEcritLigne(FicId, Str)
    FIN
    fFerme(FicId)

  7. #7
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    Bonjour
    {"COL1",indChamp}..Titre pour récupérer le titre de la colonne COL1

    Tu peux bien sur utiliser une variable chaîne à la place de "COL1"

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 61
    Points : 57
    Points
    57
    Par défaut
    Ca marche. Merci à vous !

    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
     
    PROCEDURE ExportCSV()
    NBLignes est un entier
    NBColonnes est un entier
    Idx, Idy est un entier
    Str est une chaîne 
    FicId est un entier
     
    FicId=fOuvre("c:\TEMP\TEstExport.csv",foCréation) 
     
    NBLignes=ListeOccurrence(FEN_Main.TABLE_ListeData)
    NBColonnes = FEN_Main.TABLE_ListeData..Taille
     
    Str=""
    POUR Idy=1 A NBColonnes 	
    	Str=Str +  {TableEnumèreColonne(FEN_Main.TABLE_ListeData, Idy),indChamp}..Titre + ";"
    FIN
     
    fEcritLigne(FicId, Str)	
     
    POUR Idx=1 A NBLignes
    	Str=""
    	POUR Idy=1 A NBColonnes
    		Str=Str + FEN_Main.TABLE_ListeData[Idx,Idy]+ ";" 		
    	FIN
    	fEcritLigne(FicId, Str)
    FIN
     
    fFerme(FicId)

  9. #9
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 379
    Points : 4 496
    Points
    4 496
    Par défaut
    Juste une petite astuce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Str += [";"] + FEN_Main.TABLE_ListeData[Idx,Idy]
    ça fait la même chose mais ça évite d'avoir un ; inutile en fin de chaîne

  10. #10
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 103
    Points
    1 103
    Par défaut
    Citation Envoyé par hpascal Voir le message
    Juste une petite astuce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Str += [";"] + FEN_Main.TABLE_ListeData[Idx,Idy]
    ça fait la même chose mais ça évite d'avoir un ; inutile en fin de chaîne
    La concaténation optionnelle n'est apparue qu'en version 12, sinon c'est effectivement la meilleure technique

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exporter une <table> vers fichier CSV
    Par sebhm dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 17/04/2014, 15h33
  2. [PHP 4] Exporter une table dans un fichier .csv
    Par silbano85 dans le forum Langage
    Réponses: 7
    Dernier message: 20/07/2011, 11h27
  3. [MySQL] Exporter une table Mysql vers CSV en utilisant PHP
    Par skins dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/06/2010, 20h33
  4. Exporter une table MySQL vers un fichier CSV
    Par sam01 dans le forum Outils
    Réponses: 2
    Dernier message: 07/08/2007, 16h44
  5. [Macro]exporter une table vers un fichier.csv
    Par samca dans le forum IHM
    Réponses: 2
    Dernier message: 24/04/2007, 21h25

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