为excel文档设置mime类型

时间:2009-06-10 07:07:57

标签: excel content-type mime

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

7 个答案:

答案 0 :(得分:322)

我认为标准MIME type for Excel文件是application/vnd.ms-excel

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

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

答案 1 :(得分:151)

我在这里唤醒了一个旧线程,但我觉得有必要添加“新”.xlsx格式。

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

答案 2 :(得分:37)

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

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 

答案 3 :(得分:6)

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

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

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

vnd.openxmlformats-officedocument.spreadsheetml.sheet

答案 4 :(得分:2)

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

application/vnd.ms-excel

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

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

答案 5 :(得分:1)

我正在使用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);
}

答案 6 :(得分:0)

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

我发现iMacs也倾向于抛出MIME类型" text / xls"对于XLS Excel文件,希望这会有所帮助。