Maison  >  Article  >  développement back-end  >  Comment résoudre le problème des caractères tronqués exportés vers Excel par php

Comment résoudre le problème des caractères tronqués exportés vers Excel par php

藏色散人
藏色散人original
2020-10-30 10:18:122392parcourir

La solution au code tronqué exporté par PHP vers Excel : ouvrez d'abord le fichier de code PHP correspondant ; puis ajoutez la fonction ob_end_clean après avoir traité les données et avant de sortir le fichier Excel pour résoudre le problème de code tronqué.

Comment résoudre le problème des caractères tronqués exportés vers Excel par php

Recommandé : "Tutoriel vidéo PHP"

php export Excel code tronqué

En utilisant PHP pour exporter des documents Excel, parfois les données exportées seront tronquées sans raison. Maintenant, je recommande une méthode de réparation universelle

Pas grand chose à dire, allez simplement dans le code

Le noyau est en cours de traitement Après avoir terminé les données, ajoutez la fonction ob_end_clean() avant de sortir le fichier Excel ; voir l'exemple de code pour plus de détails, seule une partie du code est répertoriée ici

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;

Comme indiqué dans le code ci-dessus , si cette méthode ne fonctionne toujours pas, essayez d'utiliser la fonction iconv() , l'utilisation spécifique ne sera pas expliquée en détail ici, s'il vous plaît Baidu

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn