J'ai un script PHP pour l'exportation de la table MYSQL au format Excel, mais j'ai un problème après l'exportation de la table. Les données qui proviennent de db ne montrent qu'une seule ligne.Exportation d'une table MYSQL en Excel
Ce script suivant:
$dbc=mysql_connect(_SRV,_ACCID,_PWD) or die(_ERROR15.": ".mysql_error());
$db=mysql_select_db("qdbase",$dbc) or die(_ERROR17.": ".mysql_error());
$sQuery = "SELECT id, Line, Model,Lot_no,
COUNT(Serial_number) AS Qty,
SUM(S), SUM(A), SUM(B), SUM(C),
(SUM(S) + SUM(A) + SUM(B)*0.4 + SUM(C)*0.1)/COUNT(Serial_number) AS QP,
ROUND((SUM(S) + SUM(A) + SUM(B)*0.4 + SUM(C)*0.1)/COUNT(Serial_number)*1000,2) AS PPM
FROM `inspection_report`";
$rResult = mysql_query($sQuery) or die();
$count = mysql_num_fields($rResult);
// fetch table header
$header = '';
for ($i = 0; $i < $count; $i++){
$header .= mysql_field_name($rResult, $i)."\t";
}
// fetch data each row, store on tabular row data
while($row = mysql_fetch_row($rResult)){
$line = '';
foreach($row as $value){
if(!isset($value) || $value == ""){
$value = "\t";
}else{
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
$data = str_replace("\r", "", $data);
if ($data == "") {
$data = "\nno matching records found\n";
}
header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: attachment; filename=exportfile.xls");
header("Pragma: no-cache");
header("Expires: 0");
// output data
echo $header."\n".$data;
?>
A côté de cela, comment faire une frontière pour cette table?
si je veux faire: echo "
yah ... je veux faire comme ça. – klox
+1 pour identifier le problème, et pour référencer PHPExcel pour générer de vrais fichiers Excel plutôt que des fichiers de valeurs séparés par des tabulations se faisant passer pour xls –
Vous ne tirez réellement rien d'autre des tables. Vous avez seulement une requête et il tire les informations d'en-tête. Exécutez une instruction sql comme "select * from tableName" pour obtenir le reste, puis faites le while et la boucle avec cette requête. PHP/navigateurs ne fonctionnent normalement pas bien avec des éléments en dehors des langages de programmation, XML et CSV. Je regarderais plus vers l'un de ces deux. XML est lisible par les nouvelles versions d'Excel (et peut être ouvert dans Internet Explorer sous forme XML), alors que csv est plus largement utilisé pour partager entre différents types de bases de données/tableurs. Pour un exemple de sortie XML goto http://www.ibm.com/developerworks/opensource/library/os-phpexcel/index.html et pour la sortie CSV, vous devrez utiliser la fonction fputcsv() sur un tableau. Pour l'exemple:
Les deux sont des manières sales d'exporter mais travaillent.
Source
2010-11-27 08:13:54
+1 pour phpexcel, c'est une bibliothèque assez solide pour traiter des documents Excel en PHP. –
c'est une bonne idée. Mais je veux seulement jouer avec le script :) – klox
essayer ce code, il fonctionne pour moi:
Source
2010-12-04 18:36:49 cranberies
Questions connexes