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