2009-06-10 19 views
289

MS Excel tiene los siguientes tipos MIME observados:ajuste del tipo de MIME de documento de Excel

  • application/vnd.ms-excel (oficial)
  • 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)

¿Hay un tipo que funcione para todas las versiones? Si no es así, ¿debemos establecer response.setContentType() con cada uno de estos tipos de mime individualmente?

Además, utilizamos la transmisión de archivos en nuestra aplicación para mostrar documentos (no solo Excel, cualquier tipo de documento). Al hacerlo, ¿cómo podemos conservar el nombre del archivo si el usuario opta por guardar el archivo? Actualmente, el nombre del servlet que representa el archivo aparece como el nombre predeterminado.

+4

De manera más general, la mejor manera de averiguar lo que piensan a sí mismos MS es el tipo correcto es encontrar una caja con la última versión instalada y mirar 'HKCR/.xls' 's' Valor del tipo de contenido en el registro. – Rup

+3

"application/vnd.ms-office" es otro tipo de mime para archivos XLS. – herrjeh42

+0

'application/vnd-xls' también funciona para archivos' .xls'. – mbomb007

Respuesta

284

Creo que los archivos estándar MIME type for Excel es application/vnd.ms-excel.

En cuanto al nombre del documento, debe establecer la siguiente cabecera en la respuesta:

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

¿cuál es la diferencia entre application/msexcel y application/vnd.ms-excel? –

+5

Si quiere mostrar el documento en el navegador (si es compatible), Content-Disposition debe estar 'en línea'. Consulte http://stackoverflow.com/questions/1395151/content-dispositionwhat-are-the-differences-between-inline-and-attachment – flash

+2

Debe evitar el uso de Content-Disposition en HTTP, ya que tiene consideraciones de seguridad. Content-Disposition es solo para correo electrónico. Ver http://stackoverflow.com/questions/1012437 para más información. –

137

Despertar un viejo hilo aquí veo, pero sentía la necesidad de añadir el "nuevo" .xlsx formato.

De acuerdo con http://filext.com/file-extension/XLSX la extensión para .xlsx es application/vnd.openxmlformats-officedocument.spreadsheetml.sheet. ¡Puede ser una buena idea incluirlo al buscar tipos de mime!

34

Debe utilizar siempre por debajo de tipo MIME si quiere servir a sobresalir archivo en xlsx formato

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

Para cualquier persona que sigue tropezando con este después de usar todos los posibles tipos MIME que figuran en la pregunta :

He encontrado que los iMac tienden a arrojar también un tipo MIME de "texto/xls" para archivos XLS Excel, espero que esto ayude.

4

yo estaba sentado tipo MIME del código .NET de la siguiente manera -

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

Mi aplicación genera Excel utilizando el SDK OpenXML. Este tipo MIME trabajó -

vnd.openxmlformats-officedocument.spreadsheetml.sheet 
Cuestiones relacionadas