为Excel文档设置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)
 是否有任何一种类型可以适用于所有版本? 如果不是,我们是否需要分别设置response.setContentType()与这些MIME类型的每一个? 
另外,我们在我们的应用程序中使用文件流来显示文档(不仅仅是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类型时加入它可能是个好主意! 
如果要以xlsx格式提供excel文件,则应始终使用以下MIME类型
 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 
我从.NET代码设置MIME类型如下 –
 File(generatedFileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") 
我的应用程序使用OpenXML SDK生成excel。 这个MIME类型工作 –
 vnd.openxmlformats-officedocument.spreadsheetml.sheet 
对于在使用问题中列出的所有可能的MIME类型之后,仍然遇到此问题的人:
我发现iMacs倾向于也为XLS Excel文件抛出一个MIME类型的“text / xls”,希望这有助于。