提问人:Subramanian 提问时间:6/10/2009 最后编辑:Jordy van EijkSubramanian 更新时间:2/22/2020 访问量:562851
设置 excel 文档的 mime 类型
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
application/xls
application/x-xls
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
(XLSX)
有没有一种类型适用于所有版本?如果没有,我们是否需要单独设置这些 mime 类型中的每一种?response.setContentType()
此外,我们在应用程序中使用文件流来显示文档(不仅仅是 excel - 任何类型的文档)。在这样做时,如果用户选择保存文件,我们如何保留文件名 - 目前,呈现文件的 servlet 的名称显示为默认名称。
答:
我相信 Excel 文件的标准 MIME 类型是 .application/vnd.ms-excel
关于文档的名称,应在响应中设置以下标头:
header('Content-Disposition: attachment; filename="name_of_excel_file.xls"');
评论
在这里唤醒了一个旧线程,我看到,但我有添加“新”.xlsx格式的冲动。
根据 http://filext.com/file-extension/XLSX .xlsx 的扩展名是 .在检查哑剧类型时包含它可能是个好主意!application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
评论
对于在使用问题中列出的所有可能的 MIME 类型后仍然磕磕绊绊的任何人:
我发现 iMac 也倾向于为 XLS Excel 文件抛出 MIME 类型的“text/xls”,希望这会有所帮助。
我从.NET代码设置MIME类型,如下所示 -
File(generatedFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
我的应用程序使用 OpenXML SDK 生成 excel。这种MIME类型有效 -
vnd.openxmlformats-officedocument.spreadsheetml.sheet
我正在使用 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);
}
对于 .xls,请使用以下内容类型
application/vnd.ms-excel
对于 Excel 2007 及更高版本的 .xlsx 文件格式
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
评论
HKCR/.xls
Content Type
application/vnd-xls
也适用于文件。.xls