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

PHP & Base de données Discussion :

Importer fichier excel dans une base de donne mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Points : 56
    Points
    56
    Par défaut Importer fichier excel dans une base de donne mysql
    Bonjour à tous,

    je me retrouve aujourd'hui confronté à un problème, l'insertion d'un fichier excel (xlsx) dans une base de donnée.
    J'ai vu sur des forums qu'il était possible grâce à "phpexcel" mais je n'ai pas trop bien compris le principe.
    À la base je transformais mon xlsx en csv, et avec un script php l'insertion se fait sans mal.
    Mais étant donné qu'on me livre des xlsx, je dois forcément soit trouver un moyen de convertir mon xlsx en csv (par le biais d'une macro est-ce possible ?), soit l'importer directement en xlsx, mais c'est là que je bug un peu.

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    À la base je transformais mon xlsx en csv, et avec un script php l'insertion se fait sans mal.
    A mon avis ton problème se situe plutôt là. Qu'est ce qui ne marchait pas, as tu fouillé d'abord un peu pourquoi cette insertion fonctionnait mal ? (y a rien qui empêche l'insertion d'un csv normalement, peut-importe sa composition).
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Points : 56
    Points
    56
    Par défaut
    Oui mais le problème est que l'on ne me fournit que des fichiers excel (.xlsx).
    Et je n'arrive à l'insérer dans ma base qu'en le passant en .csv.

    C'est là que si situe mon problème, j'aimerai, si possible, soit connaitre un moyen de convertir mon xlsx en csv (comme ça avec mon script tout va comme je le veux) ou bien de trouver un moyen d'importer directement mon xlsx en base.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Points : 56
    Points
    56
    Par défaut
    J'ai un début, en utilisant la librairie PHPExcel, mais j'ai quelques soucis.
    Mon xlsx contient 8 colonnes, et une fois le script de conversion lancé, il n'en reste plus que 4, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    require_once 'PHPExcel_1.8.0_doc/Classes/PHPExcel/IOFactory.php';
    $excel = PHPExcel_IOFactory::load("L3App-2013.xlsx");
    $writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
    $writer->setDelimiter(";");
    $writer->setEnclosure("");
    $writer->save("TESTCSVELEVE.csv");
    ?>

  5. #5
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Ok, dans ce cas là en effet le plus simple pour moi à mon avis c'est la méthode que tu essayes ici, transformer ton fichier excel en csv.

    Au lieu de la fonction "load" que tu utilises ici, essaye avec (pour bien prendre en compte que ce soit un fichier xlsx, et aps seulement xls) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $objReader = PHPExcel_IOFactory::createReader('Excel2007');
    $excel = $objReader->load("L3App-2013.xlsx");
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Points : 56
    Points
    56
    Par défaut
    OH LE C** !

    Je n'avais pas remarqué que sur mon classeur excel il y avait ... 2 feuilles !
    Donc c'est la première feuille qui était traité alors que je travaillait sur la 2eme ... Donc la conversion s'effectue normalement !

    Mais j'ai un dernier problème, la gestion des accents car lors de la conversion j'obtiens des caractères du genre "é", aurais tu une solution pour ça ?

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 84
    Points : 56
    Points
    56
    Par défaut
    J'ai trouvé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $writer->setUseBOM(TRUE);
    Merci de ton aide, sujet résolu (pour le moment )

  8. #8
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Bon bah de rien, félicitations (j'ai pas servi à grand chose pour le coup ^^)
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/08/2012, 16h41
  2. Import d'un fichier Excel dans une base de données MySql via POI
    Par intel42 dans le forum Développement Web en Java
    Réponses: 8
    Dernier message: 27/07/2011, 16h24
  3. [MySQL] Insérer le contenu d'un fichier Excel dans une base de donnée Mysql
    Par ghir_ana dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/07/2011, 15h46
  4. Inclure fichiers excel dans une base de données
    Par tib59 dans le forum VBA Access
    Réponses: 0
    Dernier message: 18/04/2008, 11h23
  5. importer une fichier excel dans une base de donnée MySQL
    Par maverick56 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/05/2007, 09h15

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