Maison >développement back-end >Problème PHP >php est tronqué dans Excel partout
PHP est un langage de script largement utilisé dans le développement Web. Il présente une flexibilité et une opérabilité particulières. Cependant, certains problèmes courants, tels que des caractères tronqués lors de l'exportation de fichiers Excel, causent de nombreux désagréments aux développeurs. Ainsi, dans cet article, nous approfondirons ce problème et proposerons quelques solutions afin que vous puissiez facilement résoudre ce problème gênant.
Les fichiers Excel sont stockés au format binaire, et non sous forme de texte comme HTML ou JSON. Par conséquent, lors de la lecture et de l’écriture de fichiers Excel, vous devez accorder une attention particulière à la manière dont ils sont codés. Les codages les plus courants sont UTF-8 et GBK.
UTF-8 est actuellement la méthode de codage la plus couramment utilisée. Elle prend en charge plusieurs langueset jeux de caractères et est particulièrement adaptée aux applications internationales. GBK est une méthode de codage chinois dont le jeu de caractères contient uniquement des caractères chinois simplifié et chinois traditionnel.
Lorsque vous utilisez PHP pour exporter des fichiers Excel, vous devez vous assurer que le fichier de script et le fichier Excel utilisent la même méthode d'encodage. Vous pouvez utiliser la fonction intégrée PHP mb_convert_encoding() pour convertir le contenu d'un encodage à un autre.
Par exemple, si vous utilisez l'encodage UTF-8 en PHP et que votre fichier Excel utilise l'encodage GBK, vous pouvez convertir le contenu en encodage GBK :
$data = "Contenu chinois";
$data = mb_convert_encoding($ data, "GBK", "UTF-8");
Vous pouvez également utiliser la méthode setCellValueExplicit() dans la bibliothèque PHPExcel pour définir le texte de la cellule Excel selon l'encodage spécifié :
$objPHPExcel->getActiveSheet( )- >setCellValueExplicit('A1', 'Chinese content', PHPExcel_Cell_DataType::TYPE_STRING,'GBK');
Obligatoire lorsque vous envoyez un fichier Excel au navigateur Utilisez le En-tête HTTP correct pour définir l'encodage. Vous pouvez ajouter les éléments suivants pour vous assurer que le navigateur utilise le codage UTF-8 :
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header('Content-Disposition: attachment; filename="example.xls"');
header('Cache-Control: max-age=0');
Utilisez certains caractères spéciaux comme les émoticônes dans les fichiers Excel ou les caractères non conventionnels, qui peut provoquer des caractères tronqués. Il faut donc veiller à éviter d’utiliser ces caractères lors de la création de fichiers Excel.
PHPExcel est une bibliothèque PHP populaire pour lire et écrire des fichiers Excel. Il comprend diverses méthodes de lecture de fichiers et méthodes d'exportation dans plusieurs formats, notamment PDF et CSV, etc. De plus, PHPExcel intègre également une conversion d'encodage et un calcul automatique des largeurs de colonnes et des formats de cellules, etc., ce qui en fait l'une des bibliothèques préférées pour le traitement des fichiers Excel.
Par exemple, pour écrire des données dans un fichier Excel et l'exporter au format XLS, vous pouvez utiliser le code suivant :
require_once 'PHPExcel.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel-> ; setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Name');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Gender ' );
$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Age');
$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Zhang San') ;
$objPHPExcel->getActiveSheet()->setCellValue('B2', 'Male');
$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');
Conclusion
Lors du traitement de fichiers Excel en PHP, nous Gardez toujours à l’esprit l’encodage utilisé et assurez-vous que tout est encodé de la même manière. Dans le même temps, il convient d'éviter d'utiliser des caractères spéciaux et d'utiliser les fonctions de bibliothèque appropriées pour traiter les fichiers Excel. En suivant ces bonnes pratiques, vous devriez être en mesure de résoudre facilement les problèmes de confusion dans Excel et de créer des fichiers Excel efficaces.
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!