8 votes

Le fichier excel généré par PHPExcel ne fonctionne pas. (Le format ou l'extension du fichier n'est pas valide)

Le fichier excel généré par PHPExcel ne fonctionne pas. (Le format ou l'extension du fichier n'est pas valide)

L'exemple de code de PHPExcel s'exécute avec succès sur mon PC local, le fichier est téléchargé en local et est ouvert dans Excel 2007 avec succès. Mais l'utilisation du même code sur mon serveur donne un fichier invalide à Excel, qui lorsque je l'ouvre et le répare, alors il s'ouvre avec succès.

Je ne veux pas utiliser l'option Ouvrir et Réparer, mais seulement l'option Ouvrir.

Vous n'avez pas pu trouver le problème ? Veuillez nous aider.

$objPHPExcel->setActiveSheetIndex(0);

//for XLSX
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="item_list.xlsx"');
header('Cache-Control: max-age=0');

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

exit;

0voto

vivek Points 1

J'ai rencontré le même problème et j'ai découvert qu'il y avait un nouveau caractère de ligne, qui venait du début des données souhaitées et causait cette erreur. Plus tard, j'ai découvert que j'avais un fichier php qui avait une balise de fermeture

"?>" 

En général, il est recommandé d'éviter d'utiliser la balise de fermeture php, car elle va également dans le tampon de sortie. Utiliser ob_end_clean() est également une bonne option.

Pour plus de détails, voir Pourquoi omettre la balise close ?

0voto

J'ai résolu mon problème, j'ai installé zip en utilisant la commande

sudo apt-get install php7.0-zip et redémarrer le serveur sudo service apache2 restart Cela fonctionne pour moi J'ai utilisé https://github.com/PHPOffice/PhpSpreadsheet

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X