Aktueller Standort: Startseite> Neueste Artikel> Verwenden

Verwenden

M66 2025-05-28

Wenn wir in PHP eine Excel -Datei zum Herunterladen generieren möchten, besteht die häufig verwendete Methode darin, die Funktion Header () zu verwenden, um den richtigen HTTP -Header festzulegen. In diesem Artikel wird der Excel -Export mit Header () eingerichtet und einige Hinweise zu MIME -Typen und Charaktercodierung erläutert.

1. Warum Header () verwenden?

Header () ist eine Funktion in PHP, mit der RAW -HTTP -Headerinformationen gesendet werden. Der Browser entscheidet, wie die zurückgegebenen Inhalte basierend auf den empfangenen Header -Informationen verarbeitet werden. Zum Beispiel:

  • Inhaltstyp teilt dem Browser mit, welche Art von Datei dies ist.

  • Inhaltsdisposition kann eine Datei zum Herunterladen erzwingen oder den Dateinamen beim Herunterladen festlegen.

Wenn der Browser die Datenausgabe von PHP als Excel -Datei verarbeitet, müssen wir diese Header festlegen.

2. Basic Header () Einstellungen

Hier ist ein grundlegendes Beispiel zum Generieren von Excel -Dateien ( Legacy.xls -Format):

 <?php
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"export.xls\"");
header("Cache-Control: max-age=0");

echo "Seriennummer\tName\tPunktzahl\n";
echo "1\tZhang San\t90\n";
echo "2\tLi Si\t85\n";
?>

veranschaulichen:

  • Inhaltstyp: Anwendung/VND.MS-EXCEL
    Sagen Sie dem Browser, dass dies eine Excel -Datei ist.

  • Inhaltsdisposition: Anhang; Dateiname = "export.xls"
    Gibt den Dateinamen zum Zeitpunkt des Downloads an.

  • Cache-Control: max-agete = 0
    Vermeiden Sie das Zwischenspeichern.

Hinweis: Diese Methode ist für einfache Text- oder HTML -Formate geeignet, die Excel erkennt, und generiert nicht direkt echte Excel -Dateiformate (z. B. .xlsx ).

3.. Über die Wahl des MIME -Typs

Unterschiedliche Exportformate und unterschiedliche MIME -Typen. Häufig verwendet werden:

  • application/vnd.ms-excel -herkömmliche .xls- Datei.

  • application / vnd.openxMlFormats officedocument

  • Anwendung/CSV oder Text/CSV - CSV -Datei.

Wenn Sie eine .xlsx -Datei generieren, müssen Sie auch Bibliotheken wie PHPSPreadsheet verwenden und nicht nur Text ausgeben.

4. Charakter -Codierungsfalle

Codierungsprobleme sind bei der Generierung von Excel -Dateien häufig, insbesondere bei der Einbeziehung von Chinesen.

FAQ:

  • Nach dem Öffnen der Excel -Datei zeigt der chinesische Text verstümmelte Code an.

  • Sonderzeichen werden falsch analysiert.

Lösung:

  1. Verwenden Sie iConv () oder mb_convert_encoding (), um die Ausgabe in eine von Excel erkannte Codierung wie GB2312 oder UTF-16LE zu konvertieren.

  2. In einer CSV-Datei können Sie zu Beginn eine BOM (Byte Order Mark) wie \ xef \ xbb \ xbf hinzufügen, um das Erkennen der UTF-8-Codierung zu unterstützen.

Beispiel (Ausgabe UTF-8 CSV mit BOM):

 <?php
header("Content-Type: text/csv; charset=utf-8");
header("Content-Disposition: attachment; filename=\"export.csv\"");
header("Cache-Control: max-age=0");

// Ausgabe BOM
echo "\xEF\xBB\xBF";

echo "Seriennummer,Name,Punktzahl\n";
echo "1,Zhang San,90\n";
echo "2,Li Si,85\n";
?>

5. Vollständiges Beispiel: Generieren Sie Excel 2007+ -Dateien

Um .xlsx zu generieren, müssen Sie normalerweise Bibliotheken wie PhpSpreadsheet verwenden, und Sie müssen auch die Ausgabe korrekt einstellen:

 <?php
require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Seriennummer');
$sheet->setCellValue('B1', 'Name');
$sheet->setCellValue('C1', 'Punktzahl');
$sheet->setCellValue('A2', '1');
$sheet->setCellValue('B2', 'Zhang San');
$sheet->setCellValue('C2', '90');

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="export.xlsx"');
header('Cache-Control: max-age=0');

$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
?>

Beachten:

  • Wenn Sie einen Link oder eine Referenz -URL in Ihrem Code haben, stellen Sie ihn durch einen Domänennamen wie https://m66.net/xxx aus.

  • Zum Beispiel, um einen Hyperlink in Excel zu setzen:

 $sheet->setCellValue('D2', '=HYPERLINK("https://m66.net/page", "Überprüfen Sie die Details")');

6. Zusammenfassung

Das Wichtigste ist , Header () zu verwenden, um Excel -Dateien zu exportieren:

  • Stellen Sie den Inhalt und die Inhaltsdisposition korrekt fest.

  • Behandeln Sie die Charakter -Codierung gut und vermeiden Sie, dass Chinesen oder Sonderzeichen verstümmelt sind.

  • Komplexe Formate (wie .xlsx ) müssen mit speziellen Bibliotheken generiert werden.

Mit diesen Einstellungen kann Ihr PHP -Programm die Exportexportfunktionalität von Excel -Daten einfach implementieren. Ich hoffe, dieser Artikel kann Ihnen helfen, Umwege in der tatsächlichen Entwicklung zu vermeiden!