Resultats d'un select vers un fichier excel
Salut a tous et merci a tous ceux qui auront participer à solutionner mon probleme.
voila j'essai de recuperer le resultat d'un select sur une table mysql dans un fichier excel.
voici le script
Code:
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
|
#EXECUTE select dans base mysql
$requete = "SELECT * FROM X r where type ='C' order by date desc";
$sth = $dbh->prepare($requete);
$dbh->{'mysql_use_result'}=1;
$sth->execute();
#renvoie information des differents champ dans une variable globale
while(@row = $sth->fetchrow_array){
$dep_D = $row[0];
$dep_N = $row[1];
$dep_P= $row[2];
$dep_L= $row[3];
$dep_T = $row[4];
$dep_C =$row[5];
$dep_Di =$row[6];
$dep_J = $row[7];
$dep_E =$row[8];
# Creer un nouveau fichier excel
my $workbook = Spreadsheet::WriteExcel->new("$rr1");
# Add a worksheet
my $worksheet = $workbook->addworksheet();
# Add and define a format
my $format = $workbook->addformat(); # Add a format
$format->set_bold(); #
$format->set_align('center');
#
# And if the keep_leading_zeros property is set:
$worksheet->write(1, 1, "$dep_D");
$worksheet->write(1, 2, "$dep_N");
$worksheet->write(1, 3, "$dep_P");
$worksheet->write(1, 4, "$dep_L");
$worksheet->write(1, 5, "$dep_T");
$worksheet->write(1, 6, "$dep_C");
$worksheet->write(1, 7, "$dep_Di");
}
}
$sth -> finish;
$dbh -> disconnect; |
Suite au script tout ce passe bien et j'obtient le resultat dans mon fichier excel mais il n'ecrit que la derniere ligne et il semblerait que cela vient de "$sth->fetchrow_array".
Ma requete "select" me sort un resultat contenant plusieurs lignes mais je n'arrive pas a les afficher l'une apres l'autre dans le fichier excel.
j'ai trouve une info en utilisant:
dump_result
Ca donne ca en envoyant le resultat de la requete sql vers un fichier
$lignes = $sth->dump_results(50 , "\n" ,',' ,\*R1);
J'ai bien toutes les lignes dans le fichier mais apres faut faire du traitement dans le fichier pour extraire les infos.
Bien que je ne sois pas un expert en perl, n'existe il pas un moyen de renvoyer l'ensemble des lignes d'une requetes sql (un select par exemple) vers un fichier excel.