web-dev-qa-db-fra.com

Définition du type mime pour un document Excel

MS Excel a les types MIME observés suivants:

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

Y at-il un type qui fonctionnerait pour toutes les versions? Sinon, devons-nous définir response.setContentType() avec chacun de ces types de mime individuellement?

De plus, nous utilisons le streaming de fichiers dans notre application pour afficher le document (pas seulement Excel - tout type de document). Ce faisant, comment pouvons-nous conserver le nom de fichier si l'utilisateur choisit de sauvegarder le fichier - actuellement, le nom du servlet qui rend le fichier apparaît en tant que nom par défaut.

336
Subramanian

Je crois que le type type MIME pour Excel fichiers est application/vnd.ms-Excel.

En ce qui concerne le nom du document, vous devez définir l'en-tête suivant dans la réponse:

header('Content-Disposition: attachment; filename="name_of_Excel_file.xls"');
327
jbochi

Je vois réveiller un vieux fil, mais j’ai eu envie d’ajouter le "nouveau" format .xlsx.

Selon http://filext.com/file-extension/XLSX , l'extension pour .xlsx est application/vnd.openxmlformats-officedocument.spreadsheetml.sheet. Ce pourrait être une bonne idée de l'inclure lors de la recherche de types de mime!

153
Karlis Rode

Vous devez toujours utiliser le type MIME ci-dessous si vous souhaitez servir un fichier Excel au format xlsx

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 
37
Siva Kranthi Kumar

Je mettais le type MIME à partir du code .NET comme ci-dessous -

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

Mon application génère Excel à l'aide du SDK OpenXML. Ce type MIME a fonctionné -

vnd.openxmlformats-officedocument.spreadsheetml.sheet
6
Divyans Mahansaria

Pour . Xls utilisez le type de contenu suivant

application/vnd.ms-Excel

Pour Excel 2007 version et ultérieure . Xlsx format de fichier

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
3
Dulith De Costa

J'utilise EPPlus pour générer un fichier Excel .xlsx (au format OpenXML). Pour envoyer ce fichier Excel en tant que pièce jointe dans un courrier électronique, j'utilise le type MIME suivant. Il fonctionne correctement avec le fichier généré par EPPlus et s'ouvre correctement dans l'aperçu du client de messagerie ms-Outlook.

string mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
System.Net.Mime.ContentType contentType = null;
if (mimeType?.Length > 0)
{
    contentType = new System.Net.Mime.ContentType(mimeType);
}
1
Vishwajit G

Pour tous ceux qui tombent encore dans cette situation après avoir utilisé tous les types MIME possibles énumérés dans la question:

J'ai constaté que les iMac ont également tendance à utiliser un type "text/xls" de type MIME pour les fichiers Excel XLS. J'espère que cela vous aidera.

0
be_es