Ich habe einen PHP-Code, der eine Abfrage aus einer Postgres-Datenbank auswählt und erstellt eine XLS-Datei und lädt die gleichen. Der Code lautet wie folgt:Speichern xls-Datei in das Verzeichnis und Download in PHP
<?php
$xls_filename = 'filename.xls'; // Define Excel (.xls) file name
$Connect = pg_connect ("host=xxxx port=5432 dbname=xxxx user=xxx password=xxx");
$sql = 'SELECT * FROM "tablename"';
$result = pg_query($sql);
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$xls_filename");
header("Pragma: no-cache");
header("Expires: 0");
// Define separator (defines columns in excel & tabs in word)
$sep = "\t"; // tabbed character
// Start of printing column names as names of fields
for ($i = 0; $i<pg_num_fields($result); $i++) {
echo pg_field_name($result,$i) . "\t";
}
print("\n");
// End of printing column names
// Start while loop to get data
while($row = pg_fetch_row($result))
{
$schema_insert = "";
for($j=0; $j<pg_num_fields($result); $j++)
{
if(!isset($row[$j])) {
$schema_insert .= "".$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 "\n";
}
}
?>
ich diese xls-Datei packen möchten, die eher dann einfach erstellt heruntergeladen. Wie erstelle ich eine xls-Datei im Verzeichnis, anstatt es herunterzuladen.
Sie 'output_buffering verwenden können 'um es zu tun. Werfen Sie einen Blick auf [docs] (https://secure.php.net/manual/en/book.outcontrol.php) –
Sehen Sie ein Beispiel in dieser [Antwort] (http://stackoverflow.com/a/16225500/ 7925366). –
Wie ist Ihr Dateiname? – lalithkumar