Stellen Sie zunächst eine Verbindung zur MySQL -Datenbank und zur Abfrage her. Angenommen, es gibt bereits eine Tabelle in der Datenbank mit dem Namen Benutzer , einschließlich Feldern wie ID , Name und E -Mail .
<?php
// Datenbankverbindungseinstellungen
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// Eine Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Überprüfen Sie die Verbindung
if ($conn->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
// Abfragedaten
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
?>
Als nächstes verwenden wir PHP, um die Abfrageergebnisse als CSV -Datei zu exportieren. Die Daten im Objekt in MySQLI_Result werden nach Zeile extrahiert und in die CSV -Datei geschrieben.
<?php
// Wenn das Abfrageergebnis existiert
if ($result->num_rows > 0) {
// Dateinamen festlegen
$filename = "users_data_" . date("Ymd_His") . ".csv";
// Stellen Sie den Antwortheader ein,Sagen Sie dem Browser, er soll die Datei herunterladen
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '"');
// Öffnen Sie den Ausgangsstrom
$output = fopen('php://output', 'w');
// Schreiben Sie in den Header
$header = ['ID', 'Name', 'Email'];
fputcsv($output, $header);
// Schreiben Sie Datenreihen
while ($row = $result->fetch_assoc()) {
fputcsv($output, $row);
}
// Schalten Sie den Ausgangsstrom aus
fclose($output);
}
?>
Obwohl es etwas komplizierter ist, Excel-Dateien direkt zu generieren, kann es über das Phpexcel oder PhpSpreadsheet von Drittanbietern erreicht werden. Diese beiden Bibliotheken bieten eine umfangreiche Funktionalität, um Abfrageergebnisse in Dateien in .xls oder .xlsx -Format zu exportieren.
Hier ist ein grundlegendes Beispiel für den Exportieren von Excel. Zuerst müssen Sie PhpSpreadsheet installieren:
composer require phpoffice/phpspreadsheet
Verwenden Sie dann den folgenden Code in PHP, um die Daten zu exportieren:
<?php
// Eingeführt PhpSpreadsheet Klassenbibliothek
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// Erstellen Sie ein neues Tabellenkalkulationsobjekt
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// Einstellen des Tischkopfs
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Name');
$sheet->setCellValue('C1', 'Email');
// Daten ausfüllen
$rowNum = 2;
while ($row = $result->fetch_assoc()) {
$sheet->setCellValue('A' . $rowNum, $row['id']);
$sheet->setCellValue('B' . $rowNum, $row['name']);
$sheet->setCellValue('C' . $rowNum, $row['email']);
$rowNum++;
}
// Dateinamen festlegen
$filename = "users_data_" . date("Ymd_His") . ".xlsx";
// Stellen Sie den Antwortheader ein,Sagen Sie dem Browser, er soll die Datei herunterladen
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
// erstellen Writer Objekt
$writer = new Xlsx($spreadsheet);
// Ausgabedatei
$writer->save('php://output');
?>
Wenn Sie möchten, dass die Datentabelle dem Benutzer zum Drucken präsentiert wird, können Sie die Abfrageergebnisse als HTML -Tabellen ausgeben. Benutzer können direkt über die Druckfunktion des Browsers drucken.
<?php
// Wenn das Abfrageergebnis existiert
if ($result->num_rows > 0) {
echo '<table border="1">';
echo '<thead>';
echo '<tr><th>ID</th><th>Name</th><th>Email</th></tr>';
echo '</thead>';
echo '<tbody>';
// Ausgabedatenlinie
while ($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td>' . $row['id'] . '</td>';
echo '<td>' . $row['name'] . '</td>';
echo '<td>' . $row['email'] . '</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
// Druckschaltfläche hinzufügen
echo '<br><button onclick="window.print()">Drucken Sie das Formular</button>';
}
?>
Auf diese Weise kann der Benutzer auf die Schaltfläche Drucken klicken, um den Seiteninhalt in einem Tabellenformular zu drucken.