2012-03-24 10 views
11
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" 

Ecco il codice da scrivere e scaricare file XSL utilizzando php,
il mio problema è quando apro file excel Mostra avviso MS-Excel prima apertura del file dicePHP Excel Header

file che si sta provare ad aprire è in un formato diverso da quello specificato dall'estensione del file ... Blah blah

Cosa fare con il codice PHP per rimuovere questo avviso? I contenuti sono scritti correttamente.

Lo so perché il contenuto scritto nel file è contenuto del file txt e l'estensione del file non è corretta, ovvero xls. Soluzione?

Si prega di non suggerire di utilizzare alcuna libreria.

+0

'Soluzione ???' um - usa l'estensione giusta, '.txt'? Non sono sicuro di cosa stai chiedendo qui. –

+3

Ma "Some Text" non sarebbe affatto un contenuto valido per un file Excel .... ed Excel darà questo messaggio se dirai torte salate e proverai a fingere che un file di testo sia un file xls ... Se vuoi per evitare questo, non dirci "Nessuna libreria". Usa una biblioteca o scrivi tutto da solo ... la biblioteca che ho scritto ha richiesto più di 6 anni –

+3

L'invio del tipo MIME per i file Excel non trasformerà magicamente l'output HTML o CSV in un vero file Excel. Non c'è soluzione per la pigrizia. – mario

risposta

7

Prova questa

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

Si stanno dando più Content-Type intestazioni. application/vnd.ms-excel è sufficiente.

E ci sono anche un paio di errori di sintassi. Terminazione dell'istruzione con ; sull'istruzione echo e l'estensione del nome file errata.

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 
+2

Per non parlare dell'estensione per il nome del file in Content Disposition –

+0

@MarkBaker, Sì, ho perso il – Starx

+0

Ho copiato e incollato un nuovo file php e controllato il mio file xls in downloded che dà lo stesso messaggio di errore, C'è qualcosa di più da fare per risolvere questo? –

0

solo cercare di aggiungere exit; alla fine dello script PHP.