Excel vers Mysql

skins Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   -  
avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde
J'ai un fichier Excel avec 20 colonnes et j'ai besoin de l'importer dans une table Mysql en passant par php.

Merci de m'aider svp

3 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Tu peux l'exporter en CSV, et parser le fichier en PHP.
    0
  2. skins Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   13
     
    Merci avion-f16 pour ton conseil, peux tu me montrer comment stp ?
    0
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Chaque ligne est séparée par le caractère "\n" (qui représente un retour à la ligne). Tu peux donc utiliser la fonction explode pour obtenir un array où chaque entrée correspond à une ligne.
    Dans cette ligne, tu peux encore utiliser la fonction explode() pour mettre les données séparées par une virgule dans un array.

    En PHP, ça donne :
    <?php
    $fichier = 'fichier.csv';
    
    try {
    	$pdo = new PDO('mysql:host=localhost;dbname=ta_base','root','');
    
    	$file = fopen($fichier, 'r');
    	while(!feof($file)) {
    		$ligne = fgets($file);
    		if(!empty($ligne)) {
    			$ligne = rtrim($ligne, "\n");
    			$donnees = explode(',',$ligne);
    			$sql = 'INSERT INTO table VALUES(';
    		
    			foreach($donnees as $v) {
    				$sql .= $pdo->quote($v).',';
    			}
    			$sql = rtrim($sql, ',');
    			$sql .= ')';
    		
    			$pdo->exec($sql);
    		}
    	}
    } catch(PDOException $e) {
    	echo 'Erreur : '.$e->getMessage();
    }
    ?>
    0