Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem verstümmelter Zeichen, die per PHP nach Excel exportiert werden

So lösen Sie das Problem verstümmelter Zeichen, die per PHP nach Excel exportiert werden

藏色散人
藏色散人Original
2020-10-30 10:18:122392Durchsuche

Lösung für den von PHP nach Excel exportierten verstümmelten Code: Öffnen Sie zuerst die entsprechende PHP-Codedatei und fügen Sie dann nach der Verarbeitung der Daten und vor der Ausgabe der Excel-Datei die Funktion ob_end_clean hinzu, um das Problem mit dem verstümmelten Code zu lösen.

So lösen Sie das Problem verstümmelter Zeichen, die per PHP nach Excel exportiert werden

Empfohlen: „PHP-Video-Tutorial

php verstümmelten Excel-Code exportieren

Verwenden Sie PHP, um Excel-Dokumente zu exportieren. Manchmal werden die exportierten Daten ohne Grund verstümmelt. Jetzt empfehle ich eine universelle Reparatur Methode

Kommen wir ohne weitere Umschweife direkt zum Code

Der Kern besteht darin, die Funktion ob_end_clean() hinzuzufügen, bevor die Excel-Datei nach der Verarbeitung der Daten ausgegeben wird. Einzelheiten finden Sie im Beispielcode. Hier ist nur ein Teil des Codes aufgeführt

foreach ($licenseList as $key => $item) {
                    $objPHPExcel->setActiveSheetIndex(0)
                        ->setCellValue('A' . ($key + 2), $item["company_name"])
                        ->setCellValue('B' . ($key + 2), $item["user_name"])
                        ->setCellValue('C' . ($key + 2), $item["order_number"])
                        ->setCellValue('D' . ($key + 2), $item['apply_type']==2 ? 'official':'trial')
                        ->setCellValue('E' . ($key + 2), $item["license_key"])
                        ->setCellValue('F' . ($key + 2), $statusArr[$item['license_status']])->setCellValue('G' . ($key + 2), $item["user_email"])
                        ->setCellValue('H' . ($key + 2), date('y/m/d H:i:s', strtotime($item['insert_time'])));
                }

                $objPHPExcel->getActiveSheet()->setTitle('Simple');
                $objPHPExcel->setActiveSheetIndex(0);
                ob_end_clean();//解决乱码核心 就在此处添加此函数
                header('Content-Type: application/vnd.ms-excel');
                header('Content-Disposition: attachment;filename="test_list.xls"');
                header('Cache-Control: max-age=0');
                header('Cache-Control: max-age=1');
                header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
                header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
                header('Cache-Control: cache, must-revalidate');
                header('Pragma: public');

                $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
                $objWriter->save('php://output');
                exit;

Wenn diese Methode immer noch nicht funktioniert, versuchen Sie bitte, die Funktion iconv() zu verwenden. Die spezifische Verwendung wird hier nicht im Detail erklärt

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem verstümmelter Zeichen, die per PHP nach Excel exportiert werden. 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