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

Bibliothèques et frameworks PHP Discussion :

[Excel] Sans modification sur le fichier


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut [Excel] Sans modification sur le fichier
    Bonjour,

    J'aimerais importer un fichier excel dans une base de données MySQL avec PHP pour pouvoir l'afficher et la modifier.
    Et ensuite pouvoir exporter toute les données ainsi modifier dans un fichier excel.

    Je sais qu'il existe des tonnes de tutoriaux, mais c'est justement peut être trop ...
    La méthode la plus simple pour importer un fichier excel est de le sauvegarder en cvs ou xml et ensuite de l'importer, mais j'aimerais me passer de manipulation, il ne faut pas trop en demander à mes utilisateurs ...

    Le fichier de base qui servira à l'importation/exportation est un fichier .xls d'origine Excel 2000.
    Est il possible d'importer/exporter un fichier de ce type sans manipulation sur le fichier ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Points : 57
    Points
    57
    Par défaut
    tu entend sans le modifier, tu n'a qu'un fichier ou tu en a plusieur?? une méthode que j'ai fait moi (surmenent pas la meilleur)
    C'est en perl, en php je ne sais pas faire

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    # !usr/perl/bin/
    # Modules nécessaires
    use strict;
     
    #use warnings;
    use Win32::OLE qw(in with);
    use CGI::Carp qw(fatalsToBrowser);
    use Win32::OLE::Const 'Microsoft Excel';
    $Win32::OLE::Warn = 3;
    use DBI;
    $| = 1;
    use Cwd;
     
    # database information
    my $db="##TA BASE##";
    my $host="localhost";
    my $userid="root";
    my $passwd="";
    my $connectionInfo="dbi:mysql:$db;$host";
     
    # make connection to database
    my $dbh = DBI->connect($connectionInfo,$userid,$passwd) or die"Couldn't connect to DB" . DBI->errstr;;
     
    # Création d'une nouvelle instance du package pour Excel
    my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');
    my $dir = cwd;
    #on cherche tout les fichier XLS du dossier courant
    my @Listexls = <*.xls>;
    foreach my $scalar (@Listexls)
          {
          # Ouverture du fichier Excel à importer
          my $Book = $Excel->Workbooks->Open("$dir/$scalar");
          # Affectation du 1er classeur à la variable $Sheet
          my $Sheet = $Book->Worksheets(1);
          my $line= 2;
    my $toto=0;
          my $col = 1;
          my $cel;
          my $sth;
      my $query = "INSERT into publi (`ident` , `numero` , `type` , `pt` , `au` , `ca` , `ti` , `so` , `se` , `bs` , `ed` , `la` , `dt` , `ce` , `sc` , `de` , `id` , `ab` , `c1` , `rp` , `em` , `pu` , `pi` , `pa` , `wp` , `sn` , `bn` , `j9` , `ji` , `py` , `pd` , `vl` , `is` , `pn` , `su` , `si` , `bp` , `ep` , `ar` , `pg` , `ga` , `ut`)
                      VALUES (";
     
              while($Sheet->Cells($line,'A')->{'Value'}){
                  my $var = $Sheet->Cells($line,$col)->{'Value'};
     
                  if ($var =~ /CCC:/){# Si l'élément de la case excel contient CCC alors dernière info on fini la requête
                        $query .="'$var')";
     
                        $line++;
                        $col = 1;
                        #print "$query\n";
     
                        print "$toto\n";
                        $toto++;
     
                        $sth = $dbh->prepare($query); # et on l'envoi
                        $sth->execute;
    # puis on réinitialise
                        $query = "INSERT into publi (`ident` , `numero` , `type` , `pt` , `au` , `ca` , `ti` , `so` , `se` , `bs` , `ed` , `la` , `dt` , `ce` , `sc` , `de` , `id` , `ab` , `c1` , `rp` , `em` , `pu` , `pi` , `pa` , `wp` , `sn` , `bn` , `j9` , `ji` , `py` , `pd` , `vl` , `is` , `pn` , `su` , `si` , `bp` , `ep` , `ar` , `pg` , `ga` , `ut`) VALUES (";
     
    		  }
                  elsif($var){                        #sinon si valeur alors on la glisse dans la requête
                      $var =~ s/\'/ /g;
                      $query .="'$var',";
                      $col++;
                  }
                  else{					#sinon on mais '' dans la reqête
                       $query .="'',";
                       $col++;
                  }
              }
     #   }
    close $Book;
    }

    Dit moi si il ya un truc que tu ne comprend pas

  3. #3
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Des personnes ont besoin de donner un dossier à une personnes.
    Le site servira au départ à exporter ces fichiers pour les archivers, puis au final à ce passer totalement des fichiers excel.

    Je test de suite cette solution.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Points : 57
    Points
    57
    Par défaut
    hum pour l'export je crois que mysql a un composant pour le fairte je suis pas sur a 100%

  5. #5
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Bon, un poil trop compliqué pour moi ta solution.
    Par contre je viens de découvrir l'exportation de phpmyadmin que tu m'a signalé en CSV.

    On peut exporter une base de données mysql vers un fichier CSV qui s'ouvre avec excel.

    Malheureusement, je ne sais pas comment faire pour ajouter des onglets dans ma fichier excel, ni "embellir" le fichier excel.
    Par embellir j'entend tracer des tableau, mettre de la couleur.

    Car un feuille remli de donnée ce n'est pas lisible.
    Si je ne trouve pas, je devrait tout mettre dans un fichier excel au lieu d'une base de données MySQL. Je suis parti pour ...

  6. #6
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Regarde par ici cela devrait t'etre utile.

  7. #7
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Wooot! C'est parfait pour l'exportation php => xls !

  8. #8
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Pour l'importation, le csv est apparament la seule solution.
    Donc je suis obligé d'enregistré le fichier en csv et de l'importer avec un script php ...

  9. #9
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Tu as la classe pour lire aussi ici. Je l'ai jamais utilisé, mais si ca se trouve ca te sera utile.

  10. #10
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Ta classe fonctionne, en fait ca crée un csv à partir du fichier excel.
    Ca revien au même, mais ca évite de faire la manip de l'exportation en csv, ce qui est très bien pour les utilisateurs lambda.

    Donc pour résumé.
    Exportation avec le couleurs et toute la mise en forme.
    Importation de excel vers csv
    Importation de csv

  11. #11
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Importation / Exportation de fichier excel avec PHP


    Le code !

    J'utilise cette classe http://sourceforge.net/docman/displa...group_id=99160

    Pour chacun des fichiers, j'enregistre des paramètres, la table MySQL associés au fichier, le nombre de colonne du fichier à enregistrer et à qu'elle ligne on débute l'enregistrement.
    Dommage que l'utilitaire de coloration php ne mette pas en couleur le code html ...

    <h2>Administration des importations des fichiers excel</h2>
    <?php
    // Inclusion de la classe pour l'exportation excel => CSV
    require_once 'include/classe/excel/reader.php';

    // Définition des colonnes à prendre en compte pour chacun des fichiers
    $Carac_fichier = array(&#160;&#160;&#160;&#160;&#160;&#160;'inv_utilisateur.xls' => &#160;&#160;&#160;&#160;&#160;&#160;array ('nom_bdd' => 'inv_utilisateur', &#160;&#160;&#160;&#160;&#160;&#160;'nbr_col' => '8',&#160;&#160;&#160;&#160;&#160;&#160;'nbr_depart' => 2),
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    'inv_print.xls' => &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;array ('nom_bdd' => 'inv_print', &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;'nbr_col' => '6',&#160;&#160;&#160;&#160;&#160;&#160;'nbr_depart' => 2),
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    'inv_switch.xls' => &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;array ('nom_bdd' => 'inv_switch', &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;'nbr_col' => '6',&#160;&#160;&#160;&#160;&#160;&#160;'nbr_depart' => 2),
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    'inv_licenece.xls' =>&#160;&#160;&#160;&#160;&#160;&#160;array ('nom_bdd' => 'inv_licence', &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;'nbr_col' => '6',&#160;&#160;&#160;&#160;&#160;&#160;'nbr_depart' => 2),
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    'inv_pc.xls' => &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;array ('nom_bdd' => 'inv_pc', &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;'nbr_col' => '65',&#160;&#160;&#160;&#160;&#160;&#160;'nbr_depart' => 2)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

    if (!isset(
    $_POST&#91;'fichiers']) )&#160;&#160;&#160;&#160;&#160;&#160;$fichiers&#91;] = "";
    else&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $fichiers&#91;] = $_POST&#91;'fichiers'];
    if (!isset(
    $_POST&#91;'sendadd']) )&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$sendadd = "";
    else&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $sendadd = $_POST&#91;'sendadd'];

    $chemin = 'fichier/excel/';&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// Répertoire contenant les fichiers
    $sql = '';&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// Initialisation de la requête SQL.
    ?>&#160;&#160;&#160;&#160;&#160;&#160;


    <form method="post" action="" enctype="multipart/form-data" />
    &#160;&#160;&#160;&#160;&#160;&#160;<strong>Fichiers : &nbsp;</strong>&#160;&#160;&#160;&#160;&#160;&#160;<input type="file" name="fichiers&#91;]" size="70" />
    &#160;&#160;&#160;&#160;&#160;&#160;<input type="submit" name="submit" value="Envoyer" /><input type="hidden" name="sendadd" value="ok"><br /><br />
    &#160;&#160;&#160;&#160;&#160;&#160;Vous pouvez importer les fichiers
    &#160;&#160;&#160;&#160;&#160;&#160;<?php &#160;&#160;&#160;&#160;&#160;&#160;foreach($Carac_fichier as $cle=>$valeur) echo '<strong>' .$cle.'</strong>,&nbsp;&nbsp;'; ?>
    </form>
    <?php
    if ($fichiers != "" && $sendadd == "ok")
    {

    &#160;&#160;&#160;&#160;&#160;&#160;
    // Upload du fichier sur le serveur
    &#160;&#160;&#160;&#160;&#160;&#160;// ==================================================================================

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// Enregistrement des noms de fichiers envoyés et temporaire
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $nom_du_fichiers = $_FILES&#91;'fichiers']&#91;'name']&#91;0];
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $nom_du_fichiers_temporaire = $_FILES&#91;'fichiers']&#91;'tmp_name']&#91;0];
    &#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //Now it's OK, upload !
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    if (@copy($nom_du_fichiers_temporaire, $chemin.$nom_du_fichiers))&#160;&#160;&#160;&#160;&#160;&#160;// $chemin
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo
    "Upload réussi du fichier : <strong>" .$nom_du_fichiers. "</strong>.<br />";

    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    // Conversion du fichier sur le serveur
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// ==================================================================================
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// ExcelFile($filename, $encoding);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $data = new Spreadsheet_Excel_Reader();
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    // Set output Encoding.
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $data->setOutputEncoding('CP1251');
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $data->read($chemin.$nom_du_fichiers);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    // Teste de l'existance du fichier dans le tableau $Carac_fichier
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    if ( isset($Carac_fichier&#91;$nom_du_fichiers]) )
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo
    "<br /><br /><strong>Début de la lecture du fichier excel ligne par ligne ... </strong><br /><br />";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    // Enregistrement du nombre de colonne à afficher
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $nom_bdd = $Carac_fichier&#91;$nom_du_fichiers]&#91;'nom_bdd'];
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $nbr_col = $Carac_fichier&#91;$nom_du_fichiers]&#91;'nbr_col'];
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $nbr_depart = $Carac_fichier&#91;$nom_du_fichiers]&#91;'nbr_depart'];
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    // Parcours du fichier excel
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    error_reporting(E_ALL ^ E_NOTICE);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for (
    $i = $nbr_depart; $i <= $data->sheets&#91;0]&#91;'numRows']; $i++)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $sql = "INSERT INTO `" .$nom_bdd. "` VALUES ( '', ";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for (
    $j = 1; $j <= $nbr_col; $j++)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (
    $j != $nbr_col )
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $sql .= "'" .$data->sheets&#91;0]&#91;'cells']&#91;$i]&#91;$j]. "',";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $sql .= "'" .$data->sheets&#91;0]&#91;'cells']&#91;$i]&#91;$j]. "');";&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//echo "\"".$data->sheets&#91;0]&#91;'cells']&#91;$i]&#91;$j]."\",";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    }
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo
    $sql . "<br />";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $db_s->query($sql);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo
    "<br /><strong> ... Fin de la lecture du fichier</strong>";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $erreur = "Le fichier n'est pas référencé.";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $erreur = "Echec de l'upload du fichier <strong>!</strong>";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo
    '<br /><span class="text_alert">' .$erreur. '</span><br />';
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //Si le fichier temporaire n'a pas été effacé par le serveur
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    if (is_file($nom_du_fichiers_temporaire))
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;@
    unlink($nom_du_fichiers_temporaire);
    }
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  12. #12
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Importation / Exportation de fichier excel avec PHP
    salut Space Cowboy,
    j'avais le même problème que vous et j'ai essayé votre code et il m'a affiché ce message d'erreur : Call to a member function on a non-object in....line 74
    donc cette ligne : $db_s->query($sql);
    svp je suis en galère et je n'arrive pas à importer des données dans ma table à partir de fichers excel.
    merci pour votre aide.

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

Discussions similaires

  1. [XL-2003] Modification sur 2 fichiers
    Par hantran dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 07/05/2010, 14h12
  2. [MySQL] faire une modification sur un fichier upload
    Par ghadghoud dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 27/04/2010, 11h35
  3. Connexion Excel et test sur un fichier déjà ouvert
    Par sebyo dans le forum Bases de données
    Réponses: 5
    Dernier message: 12/05/2009, 15h39
  4. Réponses: 6
    Dernier message: 13/03/2009, 15h58
  5. Réponses: 1
    Dernier message: 19/03/2008, 09h51

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