web-dev-qa-db-fra.com

PHP En-tête Excel

header("Content-Type:   application/vnd.ms-Excel; charset=utf-8");
header("Content-type:   application/x-msexcel; charset=utf-8");
header("Content-Disposition: attachment; filename=abc.xsl"); 
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
echo "Some Text"

Voici le code pour écrire et télécharger le fichier xsl en utilisant php,
mon problème est quand j’ouvre le fichier Excel MS-Excel affiche un avertissement avant d’ouvrir le fichier dit 

Le fichier que vous essayez d'ouvrir est dans un format différent de celui spécifié par l'extension du fichier ... Blah blah

Que faire avec le code PHP pour supprimer cet avertissement? Le contenu est écrit correctement. 

Je sais que c'est parce que le contenu écrit dans le fichier est un contenu de fichier txt et que l'extension de fichier est incorrecte, c'est-à-dire xls. Solution?

Merci de ne pas suggérer d'utiliser une bibliothèque.

12
user794624

Vous donnez plusieurs en-têtes Content-Type. application/vnd.ms-Excel est suffisant.

Et il y a aussi quelques erreurs de syntaxe. Pour terminer une instruction avec ; dans l'instruction echo et une extension de nom de fichier incorrecte.

header("Content-Type:   application/vnd.ms-Excel; charset=utf-8");
header("Content-Disposition: attachment; filename=abc.xls");  //File name extension was wrong
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
echo "Some Text"; //no ending ; here
30
Starx

Essaye ça

header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment;filename=\"filename.xlsx\"");
header("Cache-Control: max-age=0");
7
safarov

Essayez simplement d’ajouter exit; à la fin de votre script PHP.

0
Petko Doichev