Setting mime type for excel document
MS Excel具有以下观察到的MIME类型:
-
application/vnd.ms-excel (官方) -
application/msexcel -
application/x-msexcel -
application/x-ms-excel -
application/x-excel -
application/x-dos_ms_excel - <5233>
-
application/x-xls -
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (xlsx)
是否有任何一种适用于所有版本的类型? 如果没有,我们是否需要分别为这些mime类型中的每一个设置
此外,我们在应用程序中使用文件流来显示文档(不仅仅是excel - 任何类型的文档)。 这样做,如果用户选择保存文件,我们如何保留文件名 - 目前,呈现文件的servlet名称显示为默认名称。
我相信Excel文件的标准MIME类型是
关于文档的名称,您应该在响应中设置以下标题:
1 | header('Content-Disposition: attachment; filename="name_of_excel_file.xls"'); |
我在这里唤醒了一个旧线程,但我觉得有必要添加"新".xlsx格式。
根据http://filext.com/file-extension/XLSX,.xlsx的扩展名为
如果要以xlsx格式提供excel文件,则应始终使用以下MIME类型
1 | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
我从.NET代码设置MIME类型如下 -
1 | File(generatedFileName,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") |
我的应用程序使用OpenXML SDK生成excel。这种MIME类型有效 -
1 | vnd.openxmlformats-officedocument.spreadsheetml.sheet |
对于.xls,请使用以下内容类型
1 | application/vnd.ms-excel |
适用于Excel 2007及以上.xlsx文件格式
1 | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
我正在使用EPPlus生成.xlsx(基于OpenXML格式)的excel文件。要将此excel文件作为附件发送到电子邮件中,我使用以下MIME类型,它可以与EPPlus生成的文件一起使用,并在ms-outlook邮件客户端预览中正确打开。
1 2 3 4 5 6 | 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); } |
对于在使用问题中列出的所有可能MIME类型后仍然遇到此问题的任何人:
我发现iMacs也倾向于为XLS Excel文件抛出MIME类型"text / xls",希望这会有所帮助。