Maison > développement back-end > Problème PHP > php est tronqué dans Excel partout

php est tronqué dans Excel partout

WBOY
Libérer: 2023-05-07 12:43:08
original
857 Les gens l'ont consulté

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.

  1. Comprenez comment les fichiers Excel sont codés

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 langues​​et 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.

  1. Définissez la méthode d'encodage des fichiers PHP et Excel

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');

  1. Utilisez l'en-tête HTTP correct pour définir l'encodage

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');

  1. Évitez d'utiliser des caractères non pris en charge

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.

  1. Utilisation de la bibliothèque PHPExcel

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal