Heim >Backend-Entwicklung >PHP-Problem >PHP ist in Excel überall verstümmelt

PHP ist in Excel überall verstümmelt

WBOY
WBOYOriginal
2023-05-07 12:43:08843Durchsuche

PHP ist eine in der Webentwicklung weit verbreitete Skriptsprache. Einige häufige Probleme, wie z. B. verstümmelte Zeichen beim Exportieren von Excel-Dateien, bereiten Entwicklern große Unannehmlichkeiten. Deshalb werden wir uns in diesem Artikel mit diesem Problem befassen und einige Lösungen anbieten, damit Sie dieses problematische Problem leicht lösen können.

  1. Verstehen Sie, wie Excel-Dateien codiert werden

Excel-Dateien werden im Binärformat gespeichert, nicht im Textformat wie HTML oder JSON. Daher müssen Sie beim Lesen und Schreiben von Excel-Dateien besonders auf deren Kodierung achten. Die gebräuchlichsten Kodierungen sind UTF-8 und GBK.

UTF-8 ist derzeit die am häufigsten verwendete Kodierungsmethode. Es unterstützt mehrere Sprachen und Zeichensätze und eignet sich besonders für internationale Anwendungen. GBK ist eine chinesische Codierungsmethode, deren Zeichensatz nur vereinfachte und traditionelle chinesische Zeichen enthält.

  1. Legen Sie die Kodierungsmethode für PHP- und Excel-Dateien fest.

Wenn Sie PHP zum Exportieren von Excel-Dateien verwenden, müssen Sie sicherstellen, dass beide Skriptdateien vorhanden sind und die Excel-Datei verwenden dieselbe Codierungsmethode. Sie können die in PHP integrierte Funktion mb_convert_encoding() verwenden, um Inhalte von einer Codierung in eine andere zu konvertieren.

Wenn Sie beispielsweise UTF-8-Kodierung in PHP verwenden und Ihre Excel-Datei GBK-Kodierung verwendet, können Sie den Inhalt in GBK-Kodierung konvertieren:

$data = "Chinesisch content";
$data = mb_convert_encoding($data, "GBK", "UTF-8");

Sie können auch die Methode setCellValueExplicit() in der PHPExcel-Bibliothek verwenden, um Excel zu konvertieren Der Text in der Zelle wird auf die angegebene Kodierungsmethode festgelegt:

$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', 'Chinese content', PHPExcel_Cell_DataType::TYPE_STRING,'GBK ' );

  1. Verwenden Sie den richtigen HTTP-Header, um die Codierung festzulegen

Wenn Sie eine Excel-Datei an den Browser ausgeben, müssen Sie verwenden den richtigen HTTP-Header. Legen Sie die Kodierungsmethode fest. Sie können Folgendes hinzufügen, um sicherzustellen, dass der Browser die UTF-8-Codierung verwendet:

header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header('Content-Disposition: attachment;filename="example.xls"');
header('Cache-Control: max-age=0');

  1. Vermeiden Sie die Verwendung nicht unterstützter Zeichen.

Die Verwendung einiger Sonderzeichen wie Emoticons oder unkonventioneller Zeichen in Excel-Dateien kann zu unleserlichen Zeichen führen. Daher sollte darauf geachtet werden, die Verwendung dieser Zeichen beim Erstellen von Excel-Dateien zu vermeiden.

  1. Verwenden der PHPExcel-Bibliothek

PHPExcel ist eine beliebte PHP-Bibliothek zum Lesen und Schreiben von Excel-Dateien. Es umfasst verschiedene Dateilesemethoden und Exportmethoden in mehreren Formaten, einschließlich PDF und CSV usw. Darüber hinaus verfügt PHPExcel auch über eine integrierte Kodierungskonvertierung und automatische Berechnung von Spaltenbreiten, Zellenformaten usw., was es zu einer der bevorzugten Bibliotheken für die Verarbeitung von Excel-Dateien macht.

Um beispielsweise Daten in eine Excel-Datei zu schreiben und diese in das XLS-Format zu exportieren, können Sie den folgenden Code verwenden:

require_once 'PHPExcel.php';#🎜🎜 #

$objPHPExcel = new PHPExcel();

$objPHPExcel->setActiveSheetIndex(0);

$objPHPExcel->getActiveSheet()->setCellValue('A1 ' , 'Name');

$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Geschlecht');
$objPHPExcel->getActiveSheet()->setCellValue( ' C1', 'Alter');

$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Alter');

$objPHPExcel->getActiveSheet ( )->setCellValue('B2', 'M');
$objPHPExcel->getActiveSheet()->setCellValue('C2', '20');

header ('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="example.xls"');
header('Cache-Control : max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save('php://output ' ; Gleichzeitig sollte darauf geachtet werden, Sonderzeichen zu vermeiden und entsprechende Bibliotheksfunktionen zur Verarbeitung von Excel-Dateien zu nutzen. Wenn Sie diese Best Practices befolgen, sollten Sie in der Lage sein, Probleme mit verstümmelten Excel-Dateien problemlos zu lösen und effiziente Excel-Dateien zu erstellen.

Das obige ist der detaillierte Inhalt vonPHP ist in Excel überall verstümmelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn