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

Langage PHP Discussion :

PHPExcel vers mysql


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 20
    Par défaut PHPExcel vers mysql
    Bonjour,

    J'essaye d'importer un fichier excel dans mysql mais je n'y arrive pas..




    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
    // WIP
    	//A terme permettra d'enregistrer des élèves dans la base de donnée à partir d'un fichier excel
    	//Document type utilisé : ElevesComplete.xls
    	public function registerCSV($fichier){
     
     
    		try{
    		require 'coBDD.php';
    		require 'PHPExcel.php';
    		require_once 'PHPExcel/IOFactory.php';
     
    		$objectReader = PHPExcel_IOFactory::createReader('Excel2007');
        	$objectReader->setReadDataOnly(true);
     
    		$objPHPExcel = $objectReader->load($fichier);
        	$objWorksheet = $objPHPExcel->setActiveSheetIndexbyName('Sheet1');
     
    		}catch (Exception $e){
    			die('Erreur : ' . $e->getMessage());
    		}
    		// c'est ici que les grecs et les romains s'empoignèrent c chelou
    		include('coBDD.php');
    		require('PHPExcel.php');
    		require('PHPExcel/Reader/Excel2007.php');
     
    		try {
    		    $inputFileType = PHPExcel_IOFactory::identify($fichier);
    		    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    		    $objPHPExcel = $objReader->load($fichier);
    		} catch (Exception $e){
    			die('Erreur : ' . $e->getMessage());
    		}
     
    		$sheet = $objPHPExcel->getSheet(0);
    		$highestRow = $sheet->getHighestRow(); 
    		$highestColumn = $sheet->getHighestColumn();
     
    		$query = $db->prepare('INSERT INTO ELEVE (INE, libClasse, prenom1Eleve) VALUES ( :INE, :classe, :prenom)');
     
    		for($i=2;$i<=$higestRow;$i++){
     
    			$num=$objPHPExcel->getActiveSheet()->getCell(1,$i)->getValue();
    			$classe=$objPHPExcel->getActiveSheet()->getCell(2,$i)->getValue();
    			$prenom=$objPHPExcel->getActiveSheet()->getCell(3,$i)->getValue();
     
    			$query->bindValue(':INE',$num, PDO::PARAM_INT);
    			$query->bindValue(':classe',$classe, PDO::PARAM_STR);
    			$query->bindValue(':prenom',$prenom, PDO::PARAM_STR);
     
    			$query->execute();
     
    		}
     
    		$db = null;
    	}


    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
    // Crée un fichier excel à télécharger avec la liste des élèves
    	public function setXls(){
    			include('coBDD.php');
     
    			$query = $db->prepare('SELECT * FROM ELEVE ORDER BY nomEleve');
    			$query->execute();
     
    			require('PHPExcel.php');
    			require('PHPExcel/Writer/Excel2007.php');
     
    			// Instanciation de l'objet PHPExcel
    			$objPHPExcel = new PHPExcel;
     
    			// Définie le nom du créateur du fichier, on prend ici le nom d'utilisateur
    			$objPHPExcel->getProperties()->setCreator($_SESSION['username']);
     
    			// Définition de la feuille active
    			$objPHPExcel->setActiveSheetIndex(0);
     
    			// Définition du titre de l'onglet
    			$objPHPExcel->getActiveSheet()->setTitle('Liste complète élève'); 
     
    			// Création du titre de chaque colonnes
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, 1, 'N°INE');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, 1, 'Sexe');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, 1, 'Nom');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, 1, 'Classe');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, 1, '1er Prenom');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, 1, '2eme Prenom');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, 1, '3emePrenom');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, 1, 'Date de Naissance');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, 1, 'Groupes Langues');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, 1, 'Options');
    			$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(10, 1, 'MEF');
     
    			// Mise en page de la feuille Excel
    			$styleA1 = $objPHPExcel->getActiveSheet()->getStyle('A1:K1'); // Instanciation la classe PHPExcel_Style, on passe la  ou les cellules visée en paramètre
    			$styleFont = $styleA1->getFont(); // Instanciation de la classe PHPExcel_Style_Font
    			$styleFont->setBold(true);	// Passage à true pour mettre la ou les cellules en gras
     
    			// Définition de la taille des colonnes.
    			$objPHPExcel->getActiveSheet()->getColumnDimension("A")->setWidth(15);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("B")->setWidth(5);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("C")->setWidth(20);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("D")->setWidth(8);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("E")->setWidth(15);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("F")->setWidth(15);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("G")->setWidth(15);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("H")->setWidth(18);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("I")->setWidth(17);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("J")->setWidth(8);
    			$objPHPExcel->getActiveSheet()->getColumnDimension("K")->setWidth(30);
     
    			$i = 2;
    			while($data = $query->fetch()){
    				$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $i, $data['INE']);
    				$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $i, $data['sexe']);
    	            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $i, $data['nomEleve']);
    	            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $i, $data['libClasse']);
    	            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, $i, $data['prenom1Eleve']);
    	            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(5, $i, $data['prenom2Eleve']);
    	            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(6, $i, $data['prenom3Eleve']);
    	            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(7, $i, $data['dateNaissance']);
    	            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(8, $i, $data['libGroupeLV1'].$data['libGroupeLV2']);
    	            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(9, $i, $data['libOption']);
    	            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(10, $i, $data['MEF']);
    				$i++;
    			}
     
    			$db = null;
     
    			header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
    			header('Content-Disposition: attachment;filename="Liste complète élève.xlsx"'); 
    			header('Cache-Control: max-age=0'); 
     
    			$writer = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
        		$writer->save('php://output');
     
    	}
    Classe admin
    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
    function importXls(){
     
            $eleve = new Eleve();
            try{
        		require 'classes/coBDD.php';
        		require 'classes/PHPExcel.php';
     
        		// Chargement du fichier Excel
        		require_once 'classes/PHPExcel/IOFactory.php';
     
        		$objectReader = PHPExcel_IOFactory::createReader('Excel2007');
            	$objectReader->setReadDataOnly(true);
     
        		$inputFileType = PHPExcel_IOFactory::identify('ElevesComplete.xlsx');
     
        		$objectReader = PHPExcel_IOFactory::createReader($inputFileType);
            	$objectReader->setReadDataOnly(true);
     
        		$objPHPExcel = $objectReader->load($_GET['fichier']); 
            	$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
     
    		}catch (Exception $e){
    			die('Erreur : ' . $e->getMessage());
    		}
            //$eleve->registerCSV($_GET['fichier']);
            //$message = '<p style="color: green;">Le fichier a bien été enregistré dans la base de données.</p>';
            require('view/import.php');
    j'en suis là pour l'instant..

    Merci

  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
    Par défaut
    Si tu ne nous dis pas ou tu bloques, le résultat que tu obtiens, les débugages que tu as déjà fait ...
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 20
    Par défaut
    j'ai ça tout le temps

    Not Found

    The requested URL /admin.php was not found on this server.
    Apache/2.4.9 (Win64) PHP/5.5.12 Server at localhost Port 80

  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
    Par défaut
    Et c'est quoi ce fichier admin.php ?
    A quelle endroit de ton code on cherche à atteindre ce fichier ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 20
    Par défaut
    Bon bah en fait c'est bon c'était juste le chemin qui était mal renseigné

  6. #6
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 20
    Par défaut
    Bon au final j'ai une autre erreur dans la classe admin sur cette ligne :

    $objPHPExcel = $objectReader->load($_GET['fichier']);

    Undefined index : fichier in C:\wamp\www\workspace\admin.php on line 278

    La classe import si besoin :
    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
    <?php
    include('include/header.php');
    if(!empty($message)){ echo $message; }
    ?>
    	<script language="javascript">
    		function change_onglet(name)
                    {
                            document.getElementById('onglet_'+anc_onglet).className = 'onglet_0 onglet';
                            document.getElementById('onglet_'+name).className = 'onglet_1 onglet';
                            document.getElementById('contenu_onglet_'+anc_onglet).style.display = 'none';
                            document.getElementById('contenu_onglet_'+name).style.display = 'block';
                            anc_onglet = name;
                    }
     
    	</script>
     
    	<style type="text/css">
            .onglet
            {
                    display:inline-block;
                    margin-left:3px;
                    margin-right:3px;
                    padding:3px;
                    border:1px solid black;
                    cursor:pointer;
    				color: black;
            }
            .onglet_0
            {
                    background:#bbbbbb;
                    border-bottom:1px solid black;
            }
            .onglet_1
            {
                    background:#ffffff;
                    border-bottom:0px solid black;
                    padding-bottom:4px;
            }
            .contenu_onglet
            {
                    background-color:#ffffff;
                    border:1px solid black;
                    margin-top:-1px;
                    padding:5px;
                    display:none;
            }
            ul
            {
                    margin-top:0px;
                    margin-bottom:0px;
                    margin-left:-10px
            }
            h1
            {
                    margin:0px;
                    padding:0px;
            }
        </style>
     
    	<div  class="systeme_onglets">
            <div id="submenu" class="onglets">
                <span class="onglet_0 onglet" id="onglet_quoi" onclick="javascript:change_onglet('quoi');">Importer</span>
                <span class="onglet_0 onglet" id="onglet_qui" onclick="javascript:change_onglet('qui');">Exporter</span>
    			<div class="clear"></div>
            </div>
            <div id="content" class="contenu_onglets">
                <div class="contenu_onglet" id="contenu_onglet_quoi">
     
    				<h3>Importer :</h3>
    				<form action="./admin.php" method="get">
    					<input type="file" name="fichier" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    					<input type="submit" name="action" value="Importer" />
    				</form>
     
    				<div class="clear"></div>
    			</div>
    		<div class="contenu_onglet" id="contenu_onglet_qui">
    			<h3>Exporter</h3>
    			La liste des élèves :
    			<form action="./admin.php" method="get">
    				<input type="submit" name="action" value="Exporter Eleve" />
    			</form>
    			La liste MEF :
    			<form action="./admin.php" method="get">
    				<input type="submit" name="action" value="Exporter MEF" />
    			</form>
    		</div>
     
    		</div>
    	</div>
     
    	<script type="text/javascript">
            //<!--
                    var anc_onglet = 'quoi';
                    change_onglet(anc_onglet);
            //-->
            </script>
     
    </body>
    </html>

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

Discussions similaires

  1. [Conseil] Import de fichier CSV vers MySQL
    Par ShinJava dans le forum JDBC
    Réponses: 6
    Dernier message: 15/03/2005, 20h14
  2. Connexion depuis LAN impossible vers Mysql sur RH8
    Par RamDevTeam dans le forum Administration
    Réponses: 4
    Dernier message: 10/02/2005, 16h28
  3. [FileUpload] Fichier vers MySql
    Par Kimael dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 30/06/2004, 17h18
  4. Transefert de données de DBASE IV vers Mysql
    Par sessime dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 10h43
  5. Export base Access vers MySql
    Par jjn1er dans le forum Outils
    Réponses: 7
    Dernier message: 11/03/2003, 00h50

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