Discussion: Fichier Excel et PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 23
    Points : 15
    Points
    15

    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
    28 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 28 635
    Points : 42 557
    Points
    42 557

    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 à l'essai
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 23
    Points : 15
    Points
    15

    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
    28 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 28 635
    Points : 42 557
    Points
    42 557

    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 à l'essai
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 23
    Points : 15
    Points
    15

    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
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    4 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 4 388
    Points : 10 886
    Points
    10 886

    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);
    }
    # Dans la Création, tout est permis mais tout n'est pas utile...

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 23
    Points : 15
    Points
    15

    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 à l'essai
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 23
    Points : 15
    Points
    15

    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
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    4 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 4 388
    Points : 10 886
    Points
    10 886

    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.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 23
    Points : 15
    Points
    15

    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. comment lire des fichiers excel avec php?
    Par dear_rihab dans le forum Bureautique
    Réponses: 5
    Dernier message: 02/11/2007, 13h38
  2. generation des fichiers excel en php
    Par vacknov dans le forum Bureautique
    Réponses: 8
    Dernier message: 19/06/2006, 13h23
  3. imprimer un fichier excel avec php
    Par amarcil dans le forum Bureautique
    Réponses: 7
    Dernier message: 08/06/2006, 21h30
  4. Générer des fichiers Excel avec PHP et des données SQL
    Par MaTHieU_ dans le forum Bureautique
    Réponses: 3
    Dernier message: 29/03/2006, 16h46
  5. [CSV] Ecrire et Lire un fichier Excel depuis PHP
    Par cocaetjusdorange dans le forum Fichiers
    Réponses: 7
    Dernier message: 08/02/2006, 12h10

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