2009-06-10 15 views
289

MS Excel ha i seguenti tipi MIME osservati:Impostazione tipo MIME per documento di Excel

  • application/vnd.ms-excel (ufficiale)
  • application/msexcel
  • application/x-msexcel
  • application/x-ms-excel
  • application/x-excel
  • application/x-dos_ms_excel
  • application/xls
  • application/x-xls
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (xlsx)

C'è un tipo che avrebbe funzionato per tutte le versioni? In caso contrario, è necessario impostare response.setContentType() con ciascuno di questi tipi di mimo singolarmente?

Inoltre, utilizziamo lo streaming di file nella nostra applicazione per visualizzare documenti (non solo Excel, qualsiasi tipo di documento). Nel fare ciò, come possiamo mantenere il nome del file se l'utente sceglie di salvare il file: al momento, il nome del servlet che esegue il rendering del file viene visualizzato come nome predefinito.

+4

Più in generale, il modo migliore per scoprire ciò che MS si pensa è il tipo corretto è quello di trovare una scatola con l'ultima versione installata e guardare 's'' HKCR/.xls' Contenuto tipo valore nel registro. – Rup

+3

"application/vnd.ms-office" è un altro tipo mime per i file XLS. – herrjeh42

+0

'application/vnd-xls' funziona anche con i file' .xls'. – mbomb007

risposta

284

Credo che i file standard MIME type for Excel siano application/vnd.ms-excel.

Per quanto riguarda il nome del documento, è necessario impostare la seguente intestazione nella risposta:

header('Content-Disposition: attachment; filename="name_of_excel_file.xls"'); 
+14

qual è la differenza tra application/msexcel e application/vnd.ms-excel? –

+5

Se si desidera visualizzare il documento all'interno del browser (se supportato), allora Content-Disposition deve essere "in linea". Vedi http://stackoverflow.com/questions/1395151/content-dispositionwhat-are-the-differences- between-inline-and-attachment – flash

+2

Evitare l'uso di Content-Disposition in HTTP, con considerazioni sulla sicurezza. Content-Disposition è solo per e-mail. Vedi http://stackoverflow.com/questions/1012437 per maggiori informazioni. –

137

Svegliarsi un vecchio thread qui che vedo, ma ho sentito il bisogno di aggiungere il "nuovo" .xlsx formato.

Secondo http://filext.com/file-extension/XLSX l'estensione per .xlsx è application/vnd.openxmlformats-officedocument.spreadsheetml.sheet. Potrebbe essere una buona idea includerlo quando controlli i tipi MIME!

34

È consigliabile utilizzare sempre al di sotto di tipo MIME, se si vuole servire file excel in xlsx formato

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 
0

Per chi è ancora inciampare con questo dopo aver utilizzato tutti i possibili tipi MIME elencati nella domanda :

Ho trovato che iMac tendono a lanciare anche un tipo MIME di "text/xls" per i file XLS Excel, speriamo che questo aiuti.

4

mi stava tramontando tipo MIME dal codice .NET, come di seguito -

File(generatedFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") 

La mia applicazione genera Excel utilizzando OpenXML SDK. Questo tipo MIME ha funzionato -

vnd.openxmlformats-officedocument.spreadsheetml.sheet