Exportation de résultat d'une requête sql server vers un fichier Excel via une page php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Exportation de résultat d'une requête sql server vers un fichier Excel via une page php

Re: Exportation de résultat d'une requête sql server vers un fichier Excel via une page php

par @rthur » 15 janv. 2023, 18:29

Fais un var_dump() du résultat obtenu et/ou reprend exactement l'exemple de la doc

Re: Exportation de résultat d'une requête sql server vers un fichier Excel via une page php

par zakaria_youcef » 15 janv. 2023, 14:20

Merci @rthur pour votre réponse

Effectivement j'ai procédé en mettant SQLSRV_FETCH_ASSOC en 2ème paramètre à la fonction sqlsrv_fetch_array(), mais j'ai obtenu uniquement les lignes de ma table sans les noms des champs

Re: Exportation de résultat d'une requête sql server vers un fichier Excel via une page php

par @rthur » 06 janv. 2023, 20:59

Alors je ne suis pas un expert SQL server mais à ma connaissance sqlsrv_get_field() ne te permet pas de récupérer le nom des champ mais uniquement la valeur des résultats.

Tu peux utiliser la fonction sqlsrv_fetch_array() en mettant SQLSRV_FETCH_ASSOC en 2ème paramètre afin de récupérer ta ligne de résultats sous la forme d'un tableau associatif nom_de_champs => valeur_du_champ
https://www.php.net/manual/fr/function. ... -array.php

Exportation de résultat d'une requête sql server vers un fichier Excel via une page php

par zakaria_youcef » 04 janv. 2023, 10:19

Bonjour à tous

Voilà , je veux exporter le résultat d'une requête sql server vers un fichier Excel en utilisant une page php , mon code est le suivant:

<?php
$serverName = "MONSERVEUR";
$connectionInfo = array( "Database"=>"MABASE" ,"CharacterSet" =>"utf-8");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
//echo "Connexion établie.<br />";
}else{
echo "La connexion n'a pu etre etablie.<br />";
die( print_r( sqlsrv_errors(), true));
}

$sel= "SELECT * FROM [scolarite].[dbo].[eleve]";
//echo $sel.'<br>';
$result = sqlsrv_query($conn,$sel);

$file_ending = "xls";
//Information de l\'entêt de notre navigateur
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=Exportation".date('d-m-Y').".xls");
header("Pragma: no-cache");
header("Expires: 0");
/*******Debut du formatage d'excel*******/
// Definition du séparateur de colonne dans excel
$sep = "\t";
$n= "\n";
// Début d'impression des noms des colonnes
$numFields=sqlsrv_num_fields($result);

for ($i = 0; $i <$numFields; $i++)
{
echo sqlsrv_get_field($result,0) ;
}
//print("\n");
//Fin d'impression de colonnes
// Debut de la boucle
while($row = sqlsrv_fetch_array($result,SQLSRV_FETCH_ASSOC))
{
$schema_insert = "";

echo $row['NOM'].' '.$sep.$row['PRENOM'].$n;

if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep; */
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
$schema_insert .= "<\t>";
//print(trim($schema_insert));
print "\t";
}

?>

Mon problème est que que je n'arrive pas à récupérer les noms des champs de ma table avec la fonction sqlsrv_get_field !
Pouvez vous me donnez un coup de main SVP?

Merci d'avance.