Solution au fichier Excel exporté php tronqué : traitez d'abord les données de script pertinentes ; puis ajoutez la fonction "ob_end_clean()" avant de sortir le fichier Excel. Cette fonction est utilisée pour vider le tampon et fermer le tampon de sortie.
Problème de fichier Excel d'exportation php tronqué
Utilisation de 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
Sans plus tarder, passons directement au code
L'essentiel est d'ajouter ob_end_clean(() avant la sortie. le fichier Excel après avoir traité les données. ) fonction ; 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 marqué en rouge ci-dessus, si cette méthode ne fonctionne toujours pas, veuillez essayer d'utiliser la fonction iconv(), l'utilisation spécifique ne sera pas expliquée en détail ici. Veuillez Baidu
recommander : "Tutoriel PHP"
Introduction connexe. :
ob_end_clean — efface (efface) le tampon et ferme le tampon de sortie
Description
ob_end_clean (void): bool
Cette fonction supprime le contenu du tampon de sortie de niveau supérieur et ferme ce tampon. Si vous souhaitez poursuivre le traitement du contenu du tampon, vous devez appeler ob_get_contents() avant ob_end_clean(), car le contenu du tampon sera supprimé lors de l'appel de ob_end_clean().
Valeur de retour
Renvoie VRAI en cas de succès, ou FAUX en cas d'échec. La raison de l'erreur est tout d'abord qu'il n'y a pas de tampon actif au moment de l'appel, ou que le tampon ne peut pas être supprimé pour une raison quelconque (peut-être pour un tampon spécial).
Erreur/Exception
Si la fonction échoue, une exception E_NOTICE sera levée.
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!