Exporter une base de données dans excel

Ndediop Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   -  
Ndediop Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   -
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,


A voir également:

5 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
0
Ndediop Messages postés 101 Date d'inscription   Statut Membre Dernière intervention  
 
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>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 )...

0
Ndediop Messages postés 101 Date d'inscription   Statut Membre Dernière intervention  
 
D'accords Jordane merci beaucoup je vais essayer pour voir ce que ça donne.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
0
Ndediop Messages postés 101 Date d'inscription   Statut Membre Dernière intervention  
 
D'accords merci je vais voir ce que ça donne.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ndediop Messages postés 101 Date d'inscription   Statut Membre Dernière intervention  
 
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;
?>
-1