Comment puis-je créer un document .XLS à partir d'une table mySQL en utilisant PHP?mySQL à XLS en utilisant PHP?
J'ai essayé à peu près tout, sans succès. Fondamentalement, j'ai besoin de prendre des données de forme, et l'entrée dans une base de données, ce que j'ai fait, puis j'ai besoin de récupérer ces données de table et l'analyser dans un fichier Microsoft Excel, qui doit être automatiquement sauvegardé sur le serveur web.
<?php
// DB TABLE Exporter
//
// How to use:
//
// Place this file in a safe place, edit the info just below here
// browse to the file, enjoy!
// CHANGE THIS STUFF FOR WHAT YOU NEED TO DO
$dbhost = "-";
$dbuser = "-";
$dbpass = "-";
$dbname = "-";
$dbtable = "-";
// END CHANGING STUFF
$cdate = date("Y-m-d"); // get current date
// first thing that we are going to do is make some functions for writing out
// and excel file. These functions do some hex writing and to be honest I got
// them from some where else but hey it works so I am not going to question it
// just reuse
// This one makes the beginning of the xls file
function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
// This one makes the end of the xls file
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}
// this will write text in the cell you specify
function xlsWriteLabel($Row, $Col, $Value) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}
// make the connection an DB query
$dbc = mysql_connect($dbhost , $dbuser , $dbpass) or die(mysql_error());
mysql_select_db($dbname);
$q = "SELECT * FROM ".$dbtable." WHERE date ='$cdate'";
$qr = mysql_query($q) or die(mysql_error());
// start the file
xlsBOF();
// these will be used for keeping things in order.
$col = 0;
$row = 0;
// This tells us that we are on the first row
$first = true;
while($qrow = mysql_fetch_assoc($qr))
{
// Ok we are on the first row
// lets make some headers of sorts
if($first)
{
foreach($qrow as $k => $v)
{
// take the key and make label
// make it uppper case and replace _ with ' '
xlsWriteLabel($row, $col, strtoupper(ereg_replace("_" , " " , $k)));
$col++;
}
// prepare for the first real data row
$col = 0;
$row++;
$first = false;
}
// go through the data
foreach($qrow as $k => $v)
{
// write it out
xlsWriteLabel($row, $col, $v);
$col++;
}
// reset col and goto next row
$col = 0;
$row++;
}
xlsEOF();
exit();
?>
Je ne peux pas sembler comprendre comment intégrer fwrite dans tout ce que pour écrire les données générées dans un fichier .xls, comment pourrais-je le faire de cela?
J'ai besoin d'obtenir ce travail de toute urgence, donc toute aide serait grandement appréciée. Merci les gars.
Il doit être automatisé, le script sera exécuté par tâche cron chaque jour à un moment précis, j'ai juste besoin de savoir comment obtenir le script pour enregistrer les données xls générées à un fichier automatiquement. – Odyss3us
Ok .. Dans ce cas, ma solution n'est pas si bonne .. Laissez-moi l'éditer .. –
Dans cron, vous pouvez également exécuter wget pour enregistrer la sortie du script php quelque part. – Krab