Exporter une base de données dans excel
Ndediop
Messages postés
113
Statut
Membre
-
Ndediop Messages postés 113 Statut Membre -
Ndediop Messages postés 113 Statut Membre -
Bonjour,
Je souhaiterais savoir comment on fait l'exportation d'une base de données sur unexcel à travers un code PHP et un code JS.
Merci d'avance!
Cordialement,
Je souhaiterais savoir comment on fait l'exportation d'une base de données sur unexcel à travers un code PHP et un code JS.
Merci d'avance!
Cordialement,
5 réponses
-
Bonjour
Sous quelle forme ?
Un vrai excel ou juste in csv ?
Pour le "vrai" excel... tu peux utiliser la class php phpexcel.
Pour le csv... fputcsv
-
oui le fichier à exporter doit etre en .csv et voila une partie de mon code pour que vous puissiez m'aider le code php pour récupérer les données de ma base de données je dois la dans la même page que contient le fichier excel et ma page JavaScript je pense que j'ai pas besoin de faire des changements ?
<div class="box-body"> <div class="table-responsive"> <label> Fichier NAs :</label> <center> <i class="fa fa-download"></i> <a id="liennotajax" href="fichier/NAs.xlsx" rel="nofollow noopener noreferrer" target="_blank" download="NRAs.xlsx"> télécharger</a> </center> </div> -
Tu nous dis que tu dois générer un csv .;..
mais le code que tu nous montres ne "génère" rien... ce n'est qu'un lien VERS un fichier xls.
Quoi qu'il en soit .... tu vas devoir coder pour générer l'export en CSV.....
Tu peux utiliser une fonction du genre :function array_to_csv_download($array, $filename = "export.csv", $delimiter=";") { header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename="'.$filename.'";'); // open the "output" stream // see http://www.php.net/manual/en/wrappers.php.php#refsect2-wrappers.php-unknown-unknown-unknown-descriptioq $f = fopen('php://output', 'w'); foreach ($array as $line) { fputcsv($f, $line, $delimiter); } }
Exemple d'appel à cette fonction$arr_datas = array( array(1,2,3,4), array(1,2,3,4)); array_to_csv_download($arr_datas, "monfichier.csv");
fonction que tu appelleras dans une page (php) dans laquelle tu vas faire la requête SQL sur les données que tu veux récupérer et stocker dans la variable correspondant à mon exemple précédent ($arr_datas )...
-
Bonjour,
Pas besoin d'ouvrir une nouvelle discussion en doublon de celle-ci.
Bref ....
Je t'ai donné un bout de code ... dedans tu peux y voir la fonction fputcsv ..... que tu n'as visiblement pas utilisé dans ton bout de code (que tu as trouvé je ne sais où !! )
Donc :
Soit tu suis les conseils que nous te donnons pour générer un fichier CSV ....( et dans ce cas tu peux utiliser donc la commande fputcsv : https://www.php.net/manual/fr/function.fputcsv.php )
soit ... si tu veux un VRAI fichier Excel ... il va falloir passer par la class php : PhpExcel.
https://github.com/PHPOffice/PHPExcel
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Je souhaiterais avoir un coups de pouce sur mon code bah j'ai reussi à exporter la base de données mais pas dans un fichier excel ça s'affiche en vrac sur le templete, peut etre j'ai oublié le truc qui me permet d'avoir l'ouverture d'un fichier excel.
Merci d'avance!
Cordialement,
<?php require('../../bd_connect.php'); function cleanData(&$str) { // escape tab characters $str = preg_replace("/\t/", "\\t", $str); // escape new lines $str = preg_replace("/\r?\n/", "\\n", $str); // convert 't' and 'f' to boolean values if($str == 't') $str = 'TRUE'; if($str == 'f') $str = 'FALSE'; // force certain number/date formats to be imported as strings if(preg_match("/^0/", $str) || preg_match("/^\+?\d{8,}$/", $str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str)) { $str = "'$str"; } // escape fields that include double quotes if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; } // filename for download $filename = "Expordata" . date('Ymd') . ".xls"; header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: application/vnd.ms-excel"); $flag = false; $requete = "SELECT informations // je les ai effacés " or die('Query failed!'); $resultats= $bdd_connection->query($requete); while($row = $resultats->fetch()){ if(!$flag) { // display field/column names as first row echo implode("\t", array_keys($row)) . "\r\n"; $flag = true; } array_walk($row, __NAMESPACE__ . '\cleanData'); echo implode("\t", array_values($row)) . "\r\n"; } exit; ?>