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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Fichier Excel et PHP


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 46
    Points
    46
    Par défaut Fichier Excel et PHP
    Bonjour à tous,

    Je cherche un système qui permettrait de faire correspondre un fichier Excel à un modèle. Je m'explique :
    1. On upload un fichier Excel avec x lignes (peu importe le nom des colonnes).
    2. Dans le back-office on affiche un modèle de fichier Excel dynamiquement en php avec des titres de colonnes précises
    3. Faire correspondre les colonnes du fichier uploadé à celles du modèle

    Ex :
    - faire correspondre la colonne A du fichier uploadé à la colonne B du modèle
    - faire correspondre la colonne B du fichier uploadé à la colonne F du modèle
    ...

    Lorsque l'on enregistre, les valeurs des cellules du fichier uploadé vont remplir les cellules du fichier modèle selon la correspondance des colonnes.

    En espérant avoir été clair dans mes explications, pas évident.
    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas pu écrire le début d'une ébauche d'un algorithme ?

    Il suffit de lire les titres de colonne du fichier A, les mettre dans un tableau PHP qui fournit donc la correspondance colonne<->nom du fichier A.
    Puis lire le les colonnes du fichier B et consulter dans le tableau PHP à quelle colonne elles doivent aller.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Merci pour votre réponse. J'ai trouvé ce site PHPExcel.
    Est-ce que cela peut m'aider ou pas du tout, fausse route ?
    Oui j'avais pensé à créér 2 tableau...

    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Oui pour lire le fichier Excel tu peux utiliser PHPExcel.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    Je reviens sur votre proposition avec les tableaux php mais comment faire pour remplir le tableau B avec les données du tableau A
    voila ce que j'ai actuellement :

    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
     
    // Entete du tableau A
    Array
    (
        [0] => Vehicule
        [1] => Immatricualtion
        [2] => Demande
        [3] => N de serie
        [4] => Date mise en circulation
     
    )
     
    // Données du tableau A
    Array
    (
        [0] => renault
        [1] => DF-526-HJ
        [2] => VF123654789
        [3] => changement proprietaire
        [4] => 12/05/2010
     
    )
    Array
    (
        [0] => peugeot
        [1] => FG-123-XC
        [2] => VF1545374684548
        [3] => changement d'adresse
        [4] => 13/05/2010
     
    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // Entetes du tableau final 
    Array
    (
        [0] => marque
        [1] => modele
        [2] => immat
        [3] => serie
        [4] => date_circul
     
    )

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    je n'ai pas tout compris dans tes explications mais je vais tenter de te filer une piste :
    Tu dois mettre dans le bon ordre les valeurs du tableau des en-têtes afin que ces dernières correspondent pile poil aux valeurs du tableau des valeurs.
    Ensuite un petit coup de array_combine() et hop le tour est joué.
    Tiens quelque chose dans ce genre :

    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
    // ordonné de manière à coller aux données
    $header = [
        0 => 'marque',
        1 => 'immat',
        2 => 'serie',
        3 => 'demande',
        4 => 'date_circul'
    ];
     
    $data = [[
        0 => 'renault',
        1 => 'DF-526-HJ',
        2 => 'VF123654789',
        3 => 'changement proprietaire',
        4 => '12/05/2010'
    ], [
        0 => 'peugeot',
        1 => 'FG-123-XC',
        2 => 'VF1545374684548',
        3 => "changement adresse",
        4 => '13/05/2010'
    ]];
     
     
    $final = [];
    foreach ($data as $v) {
        $final[] = array_combine($header, $v);
    }

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    merci pour votre reponse. je vais tester. par contre comme les fichiers sont uploades par les clients les entetes peuvent etre differentes a chaque fichier.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    Ca avance mais les colonnes du fichier ne se mettent pas à jour. J'ai cependant j'ai bien récupérer les bonnes entetes du tableau.
    Le souci c'est que je n'arrive pas à modifier l'ordre des données du tableau. Les données ne correspondent pas aux entetes du modele.
    Merci

    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
     
     
    // l'ordre des entetes selon mon modele
    $header = [
        0 => 'marque',
        1 => 'date_circul',
        2 => 'immat',
        3 => 'serie'
    ];
     
     
    // Données suite à la fonction array_combine ce qui est normal
     
    Array
    (
     
        [0] => Array
            (
                [vehi_marque] => renault
                [siv] => 12/05/2010
                [vehi_serie] => DF-526-HJ
                [vehi_date_circul
    ] => VF123654789
     
            )
     
        [1] => Array
            (
                [vehi_marque] => peugeot
                [siv] => 13/05/2010
                [vehi_serie] => FG-123-XC
                [vehi_date_circul
    ] => VF1545374684548

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Je ne comprends toujours pas : comment tu peux définir un en-tête comme ceci :
    marque | date_circul | immat | serie
    et te retrouver avec des clés comme cela :
    vehi_marque | siv | vehi_serie | vehi_date_circul
    avec une simple array_combine() ?

    Y a un truc que tu ne montres pas, c'est pas possible autrement.

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    j'ai trouvé la solution en affichant pour chaque colonne du fichier des véhicules un select avec tous les headers souhaités.
    Ensuite il suffit de dire :
    colonne A -> option 2 du select
    colonne B -> option 4 du select
    colonne C -> option 1 du select
    ...

    Merci à tous pour votre aide.
    Bonne journée

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

Discussions similaires

  1. [Excel] Comment lire des fichiers excel avec php?
    Par dear_rihab dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 02/11/2007, 12h38
  2. [Excel] Génération des fichiers excel en php
    Par vacknov dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 19/06/2006, 12h23
  3. [Excel] Imprimer un fichier excel avec php
    Par amarcil dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 08/06/2006, 20h30
  4. [Excel] Générer des fichiers Excel avec PHP et des données SQL
    Par MaTHieU_ dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 29/03/2006, 15h46
  5. [CSV] Ecrire et Lire un fichier Excel depuis PHP
    Par cocaetjusdorange dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2006, 11h10

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