设置 excel 文档的 mime 类型

Setting mime type for excel document

提问人:Subramanian 提问时间:6/10/2009 最后编辑:Jordy van EijkSubramanian 更新时间:2/22/2020 访问量:562851

问:

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 的名称显示为默认名称。

Excel 内容类型 MIME

评论

6赞 Rup 7/26/2012
更一般地说,找出 MS 自己认为正确的类型的最佳方法是找到一个安装了最新版本的框,并在注册表中查看 的值。HKCR/.xlsContent Type
4赞 herrjeh42 7/1/2014
“application/vnd.ms-office”是 XLS 文件的另一种 MIME 类型。
0赞 mbomb007 5/26/2016
application/vnd-xls也适用于文件。.xls
1赞 RBT 1/24/2018
请参阅这篇文章以获取 MIME 类型和相关 excel 文件扩展名的完整列表。
2赞 Raksha Saini 8/31/2020
标准 excel MIME 类型为:- application/vnd.ms-excel

答:

400赞 jbochi 12/27/2009 #1

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

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

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

评论

23赞 Thabiso Mofokeng 11/28/2012
application/msexcel 和 application/vnd.ms-excel 之间有什么区别?
7赞 flash 10/2/2013
如果要在浏览器中显示文档(如果支持),则 Content-Disposition 需要“内联”。查看 stackoverflow.com/questions/1395151/...
4赞 Dzmitry Lazerka 4/26/2014
您应该避免在 HTTP 中使用 Content-Disposition,它有安全考虑。Content-Disposition 仅适用于电子邮件。有关详细信息,请参阅 stackoverflow.com/questions/1012437
0赞 Oskar Berggren 5/8/2015
请注意,对于 OpenXML Excel XLSX 文件格式,定义了不同的 Mime 类型,请参阅提供的链接中的完整列表。
0赞 Kip 10/13/2015
@DzmitryLazerka什么是内容处置的“安全”替代方案?点击您的链接,然后是该答案中的链接,然后是该文档中的链接,我们将带到这里:tools.ietf.org/html/rfc6266#section-4.3。据我所知,安全问题只涉及用户提供的文件名——如果它们包含非拉丁字符,或者在某些操作系统上无效的字符。所有主要浏览器都有针对这些问题的保护措施。Windows 和 Mac 还会在文件上设置一个标志,指示它来自互联网,当您尝试打开它时会弹出警告。
217赞 Karlis Rode 4/20/2012 #2

在这里唤醒了一个旧线程,我看到,但我有添加“新”.xlsx格式的冲动。

根据 http://filext.com/file-extension/XLSX .xlsx 的扩展名是 .在检查哑剧类型时包含它可能是个好主意!application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

评论

3赞 Lee 3/15/2018
这就是我一直在寻找的,谢谢,需要支持最新格式和以前的格式。
1赞 be_es 5/26/2016 #3

对于在使用问题中列出的所有可能的 MIME 类型后仍然磕磕绊绊的任何人:

我发现 iMac 也倾向于为 XLS Excel 文件抛出 MIME 类型的“text/xls”,希望这会有所帮助。

9赞 Divyans Mahansaria 6/22/2016 #4

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

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

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

vnd.openxmlformats-officedocument.spreadsheetml.sheet
2赞 Vishwajit G 11/1/2018 #5

我正在使用 EPPlus 生成 .xlsx(基于 OpenXML 格式)的 excel 文件。为了将此 excel 文件作为电子邮件中的附件发送,我使用以下 MIME 类型,它适用于 EPPlus 生成的文件,并在 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);
}
64赞 Du-Lacoste 4/6/2019 #6

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

application/vnd.ms-excel

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

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet