在下载xls文件时打开选项会添加.xlsx扩展名

时间:2013-12-27 09:53:00

标签: php excel

我正在开发一个功能,我向用户证明了excel转储。当用户下载excel表时,它可以正常工作。用户尝试使用Microsoft Excel打开时,它会给我一个错误“Excel无法打开文件,因为文件格式或扩展名无效”这只发生在firefox浏览器中,并且文件名中会自动添加.xlsx扩展名。< / p>

我用来创建excel转储的代码是

    header('Pragma: public');
    header("Expires: Mon, 12 Jul 2012 05:00:00 GMT");                // Date in the past
    header('Content-Disposition: attachment; filename="excel.xls"');
    header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');     // HTTP/1.1
    header('Cache-Control: pre-check=0, post-check=0, max-age=0'); 

   $header  = "Date\t";
   $header .= "Other Details Details\t";
   echo $header . "\n";
   echo "Date1\t";
   echo "Detail1\t\n";
   echo "Date2\t";
   echo "Detail2\t\n";

1 个答案:

答案 0 :(得分:0)

我遇到了以下(不匹配)响应头的确切问题:

Content-Disposition: attachment; filename="excel.xls"
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

内容类型indicates是.xslx文件,这显然会导致Firefox添加.xslx扩展名。 Excel显示此错误是因为文件扩展名(由Firefox附加)为.xslx,而文件格式为xls。

要解决此问题,请将内容类型更改为:

Content-Type: application/vnd.ms-excel