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] Intégrer au fichier Excel des données saisies par formulaire


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut [Excel] Intégrer au fichier Excel des données saisies par formulaire
    Bonjour,

    J'ai fait une page de formulaire avec method post...
    Le problème qui se pose c'est que je souhaite récupérer les informations que l'utilisateur aura saisi au préalable dans un fichier excel directement et je ne c'est pas du tout comment faire. Pouvez vous m'indiquer si vous avez une idée svp

    J'espère aussi avoir posté au bonne endroit si ce n'est pas le cas je m'en excuse.

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Les informations dans le fichier excel, il les saisi comme ça ou t'as une application VBA dans ton fichier excel?

    Si c'est juste un fichier excel rempli "basiquement", tu peux demander à ce que ce soit des fichiers au format CSV et après bah tu lis le fichier comme un fichier texte. Les colonnes sont séparées par des ; et les lignes par un retour à la ligne.

    C'est très facile à exploiter

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Donc oui c'est pour une utilisation basique

    peux tu me faire un exemple stp car je suis débutant

    j'ai commencé comme ça pour l'instant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    define("FILENAME","répetoire\\phpexcel.xls");
    $excel=new COM("Excel.application"); 
    $excel->sheetsinnewworkbook=1;
    $excel->Workbooks->Addd'();
    $book=$excel->Workbooks(1);
    $sheet=$book->Worksheets(1);
    $sheet->Name="Rapport appel des clients";
    ensuite je finis comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $book->saveas(FILENAME);
    unset($sheet);
    unset($book);
    $excel->Workbooks->Close();
    $excel->Quit();
    unset($excel);
    mais le problème c'est le milieu disons que j'ai deux variables qui ont été saisies
    $_POST['nom'] $_POST['prenom']

    Et que ma première ligne de mon fichier est déjà prise par l'intitulé des colonnes que $_POST['nom'] doit aller deuxième ligne deuxième colonnes
    et $_POST['prenom'] deuxième ligne troisièmes colonnes.

    Comment tu écris ca stp?

    Si tu pouvais me dire aussi si mon début et ma fin est bonne que je ne galère pas stp

    merci d'avance

  4. #4
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Ah j'ai jamais bossé avec les objets COM... je t'avoue que là du coup je sais pas répondre

    Je me documente et je reviens. A moins qu'un autre réponde plus vite bien sur

  5. #5
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    je ne sais pas si c'est des COM je me suis peut etre trompé!

  6. #6
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Bon voila j'ai continué et essayer mais je rencontre encore quelque problème notament ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $excel=new COM("Excel.application"); //Instanciation de l'objet COM
    Ca me met ca comme erreur :
    Fatal error: Cannot instantiate non-existent class: com in /mnt/104/sdb/7/8/site.inter/stage/concours_ts.php on line 44
    Voici mon script en entier pour le fichier excel si vous trouvez d'autres problèmes ....
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
     
    define("FILENAME","C:/Documents and Settings/slelais/Bureau/site/phpexcel.xls"); 
    if(file_exists(FILENAME)) // On vérifie que le fichier existe. 
    { 
    unlink(FILENAME); // Suppression du fichier précédemment créé s'il existe. 
    } 
    $excel=new COM("Excel.application"); //Instanciation de l'objet COM 
    $excel->sheetsinnewworkbook=1;//1 seule feuille de calcul dans le document 
    $excel->Workbooks->Add();//Ajout d'un classeur 
    $book=$excel->Workbooks(1);//$book contient le classeur actif 
    $sheet=$book->Worksheets(1);//$sheet contient la feuille active (comme son nom l'indique, feuille en anglais) 
    $sheet->Name="phpexcel.xls";//Attribution d'un nom à la feuille 
     
    $cell->EntireColumn->AutoFit; // La largeur de la colonne s'adapte en fonction de l'intérieur de la cellule 
     
    $cell=$sheet->Range('B1'); // On sélectionne la case B1 
    $cell->value=nom; // On met la valeur dans la cellule B1, peu importe le type. 
    $cell=$sheet->Range('C1'); 
    $cell->value=prenom; 
    $cell=$sheet->Range('D1'); 
    $cell->value=naissance; 
    $cell=$sheet->Range('E1'); 
    $cell->value=lieu; 
    $cell=$sheet->Range('F1'); 
    $cell->value=dpt; 
    $cell=$sheet->Range('G1'); 
    $cell->value=adresse; 
    $cell=$sheet->Range('H1'); 
    $cell->value=telephone; 
    $cell=$sheet->Range('I1'); 
    $cell->value=telecopie; 
    $cell=$sheet->Range('J1'); 
    $cell->value=portable; 
    $cell=$sheet->Range('K1'); 
    $cell->value=mail; 
    $cell=$sheet->Range('L1'); 
    $cell->value=classe; 
    $cell=$sheet->Range('M1'); 
    $cell->value=option; 
    $cell=$sheet->Range('N1'); 
    $cell->value=anne; 
    $cell=$sheet->Range('O1'); 
    $cell->value=classe2; 
    $cell=$sheet->Range('P1'); 
    $cell->value=option2; 
    $cell=$sheet->Range('Q1'); 
    $cell->value=annee2; 
    $cell=$sheet->Range('R1'); 
    $cell->value=classe3; 
    $cell=$sheet->Range('S1'); 
    $cell->value=option3; 
    $cell=$sheet->Range('T1'); 
    $cell->value=annee3; 
    $cell=$sheet->Range('U1'); 
    $cell->value=classe4; 
    $cell=$sheet->Range('V1'); 
    $cell->value=option4; 
    $cell=$sheet->Range('W1'); 
    $cell->value=annee4; 
    $cell=$sheet->Range('X1'); 
    $cell->value=classe5; 
    $cell=$sheet->Range('Y1'); 
    $cell->value=option5; 
    $cell=$sheet->Range('Z1'); 
    $cell->value=annee5; 
    $cell=$sheet->Range('AA1'); 
    $cell->value=classe6; 
    $cell=$sheet->Range('AB1'); 
    $cell->value=option6; 
    $cell=$sheet->Range('AC1'); 
    $cell->value=annee6; 
    $cell=$sheet->Range('AD1'); 
    $cell->value=classe7; 
    $cell=$sheet->Range('AE1'); 
    $cell->value=option7; 
    $cell=$sheet->Range('AF1'); 
    $cell->value=annee7; 
    $cell=$sheet->Range('AG1'); 
    $cell->value=classe8; 
    $cell=$sheet->Range('AH1'); 
    $cell->value=option8; 
    $cell=$sheet->Range('AI1'); 
    $cell->value=annee8; 
    $cell=$sheet->Range('AJ1'); 
    $cell->value=mention; 
    $cell=$sheet->Range('AK1'); 
    $cell->value=annee9; 
    $cell=$sheet->Range('AL1'); 
    $cell->value=mention2; 
    $cell=$sheet->Range('AM1'); 
    $cell->value=annee10; 
     
    $cell=$sheet->Range('B2'); // On sélectionne la case B2 
    $cell->value=$_POST['nom']; // On met la valeur de $POST_['variable'] dans la cellule B1, peu importe le type. 
    $cell=$sheet->Range('C2'); 
    $cell->value=$_POST['prenom']; 
    $cell=$sheet->Range('D2'); 
    $cell->value=$_POST['naissance']; 
    $cell=$sheet->Range('E2'); 
    $cell->value=$_POST['lieu']; 
    $cell=$sheet->Range('F2'); 
    $cell->value=$_POST['dpt']; 
    $cell=$sheet->Range('G2'); 
    $cell->value=$_POST['adresse']; 
    $cell=$sheet->Range('H2'); 
    $cell->value=$_POST['telephone']; 
    $cell=$sheet->Range('I2'); 
    $cell->value=$_POST['telecopie']; 
    $cell=$sheet->Range('J2'); 
    $cell->value=$_POST['portable']; 
    $cell=$sheet->Range('K2'); 
    $cell->value=$_POST['mail']; 
    $cell=$sheet->Range('L2'); 
    $cell->value=$_POST['classe']; 
    $cell=$sheet->Range('M2'); 
    $cell->value=$_POST['option']; 
    $cell=$sheet->Range('N2'); 
    $cell->value=$_POST['anne']; 
    $cell=$sheet->Range('O2'); 
    $cell->value=$_POST['classe2']; 
    $cell=$sheet->Range('P2'); 
    $cell->value=$_POST['option2']; 
    $cell=$sheet->Range('Q2'); 
    $cell->value=$_POST['annee2']; 
    $cell=$sheet->Range('R2'); 
    $cell->value=$_POST['classe3']; 
    $cell=$sheet->Range('S2'); 
    $cell->value=$_POST['option3']; 
    $cell=$sheet->Range('T2'); 
    $cell->value=$_POST['annee3']; 
    $cell=$sheet->Range('U2'); 
    $cell->value=$_POST['classe4']; 
    $cell=$sheet->Range('V2'); 
    $cell->value=$_POST['option4']; 
    $cell=$sheet->Range('W2'); 
    $cell->value=$_POST['annee4']; 
    $cell=$sheet->Range('X2'); 
    $cell->value=$_POST['classe5']; 
    $cell=$sheet->Range('Y2'); 
    $cell->value=$_POST['option5']; 
    $cell=$sheet->Range('Z2'); 
    $cell->value=$_POST['annee5']; 
    $cell=$sheet->Range('AA2'); 
    $cell->value=$_POST['classe6']; 
    $cell=$sheet->Range('AB2'); 
    $cell->value=$_POST['option6']; 
    $cell=$sheet->Range('AC2'); 
    $cell->value=$_POST['annee6']; 
    $cell=$sheet->Range('AD2'); 
    $cell->value=$_POST['classe7']; 
    $cell=$sheet->Range('AE2'); 
    $cell->value=$_POST['option7']; 
    $cell=$sheet->Range('AF2'); 
    $cell->value=$_POST['annee7']; 
    $cell=$sheet->Range('AG2'); 
    $cell->value=$_POST['classe8']; 
    $cell=$sheet->Range('AH2'); 
    $cell->value=$_POST['option8']; 
    $cell=$sheet->Range('AI2'); 
    $cell->value=$_POST['annee8']; 
    $cell=$sheet->Range('AJ2'); 
    $cell->value=$_POST['mention']; 
    $cell=$sheet->Range('AK2'); 
    $cell->value=$_POST['annee9']; 
    $cell=$sheet->Range('AL2'); 
    $cell->value=$_POST['mention2']; 
    $cell=$sheet->Range('AM2'); 
    $cell->value=$_POST['annee10']; 
     
     
    $book->saveas(FILENAME);//Sauvegarde du fichier 
    unset($sheet);//Libération de $sheet 
    unset($book);//Libération de $book 
    $excel->Workbooks->Close();//Fermeture du classeur 
    $excel->Quit();//On quitte Excel 
    unset($excel);//Libération de l'instance $excel
    Je vous implores svp

    Merci d'avance pour votre aide

  7. #7
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    changement de programme j'ai juste à mettre les infromations dans un fichier texte donc si ca simplifie aidez moi car la je suis pomé

    merci d'avance

  8. #8
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Dans un fichier texte simple, ce que tu fais, c'est que t'en récupères le contenu ligne par ligne et tu définis un séparateur standard pour les différentes données présentes sur la ligne.
    Par exemple si t'as un id, un nom et une adresse mail, le contenu de ton fichier pourrait ressembler à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1;toto;toto@test.fr
    2;tata;tata@test.fr
    3;titi;titi@test.fr
    En utilisant la fonction explode() avec le séparateur ";", tu obtiendras un tableau à chaque ligne contenant les différentes données et donc ça sera facile de le traiter.

    Tu vois où je veux en venir?

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/07/2011, 15h44
  2. [XL-2003] Importer en Excel des données d’un fichier XML
    Par luca.donati dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/11/2010, 02h16
  3. Réponses: 11
    Dernier message: 07/02/2009, 01h31
  4. Modifier des donnés sql par formulaire (avec variables)
    Par expression dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2008, 09h35
  5. [EXCEL] Validation des données saisies - nouvelle Question :-)
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 39
    Dernier message: 29/11/2006, 13h28

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