MS Excel具有以下观察到的MIME类型:



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

是否有一种适用于所有版本的类型?如果不是,我们是否需要分别为每种mime类型设置response.setContentType()

此外,我们在应用程序中使用文件流来显示文档(不仅仅是excel-任何类型的文档)。这样做时,如果用户选择保存文件,那么如何保留文件名-当前,呈现文件的servlet的名称显示为默认名称。

评论

更一般而言,找出MS自己认为正确类型的最佳方法是找到一个装有最新版本的框,然后在注册表中查看HKCR / .xls的“内容类型”值。

“ application / vnd.ms-office”是XLS文件的另一种mime类型。

application / vnd-xls也适用于.xls文件。

请参阅此帖子以获取MIME类型和相关excel文件扩展名的完整列表。

标准excel MIME类型是:-application / vnd.ms-excel

#1 楼

我相信Excel文件的标准MIME类型是application/vnd.ms-excel

关于文档的名称,您应该在响应中设置以下标题:

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


评论


application / msexcel和application / vnd.ms-excel有什么区别?

– Thabiso Mofokeng
2012年11月28日13:23



如果要在浏览器中显示文档(如果支持),则Content-Disposition必须为“内联”。见stackoverflow.com/questions/1395151/…

– flash
13年10月1日在23:15

您应该避免在HTTP中使用Content-Disposition,因为它具有安全性考虑。内容处置仅适用于电子邮件。有关更多信息,请参见stackoverflow.com/questions/1012437。

–德米特里·拉泽卡(Dzmitry Lazerka)
2014年4月25日在21:32

请注意,对于OpenXML Excel XLSX文件格式,定义了其他Mime类型,请参见提供的链接中的完整列表。

–奥斯卡·伯格伦(Oskar Berggren)
2015年5月7日22:44



@DzmitryLazerka是内容处置的“安全”替代方法是什么?在您的链接之后,然后是该答案中的链接,然后是该文档中的链接,将我们带到此处:tools.ietf.org/html/rfc6266#section-4.3。据我所知,安全问题仅涉及用户提供的文件名-如果它们包含非拉丁字符或在某些OS上无效的字符。所有主要的浏览器都有针对这些问题的防护措施。 Windows和Mac还在文件上设置一个标志,指示该文件来自互联网,当您尝试打开该文件时会弹出警告。

–基普
2015年10月13日下午13:56

#2 楼

我看到这里唤醒了一个旧线程,但是我感到有增加“ .xlsx”新格式的冲动。 .xlsx是application/vnd.openxmlformats-officedocument.spreadsheetml.sheet。检查MIME类型时将其包括可能是一个好主意!

评论


这就是我一直在寻找的感谢,需要支持最新的格式以及以前的格式。

–李
18 Mar 15 '18 at 12:26

#3 楼

如果要以xlsx格式提供excel文件,则应始终在MIME类型下面使用

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 


#4 楼

对于.xls,请使用以下内容类型

application/vnd.ms-excel


对于Excel 2007及更高版本,.xlsx文件格式

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet


#5 楼

我从.NET代码中设置MIME类型,如下所示-

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


我的应用程序使用OpenXML SDK生成excel。此MIME类型有效-

vnd.openxmlformats-officedocument.spreadsheetml.sheet


#6 楼

我正在使用EPPlus生成.xlsx(基于OpenXML格式)excel文件。为了将这个excel文件作为附件发送到电子邮件中,我使用以下MIME类型,它可以与EPPlus生成的文件一起正常工作,并且可以在ms-outlook邮件客户端预览中正确打开。

#7 楼

对于使用问题中列出的所有可能的MIME类型后仍然still之以鼻的人:

我发现iMacs也会为XLS Excel抛出MIME类型“ text / xls”文件,希望对您有所帮助。