php下载excel文件,
1、在下载的过程中不要 输出任何非文件信息,比如 echo log信息。 否则下载后的文件无法打开,提示格式错误或者文件被破坏。
2、 输出的excel格式一定要和后缀名保存一直,否也会提示格式错误或者文件被破坏

复制代码 代码如下:
if (file_exists(CACHE_PATH . $file_name)){
            //$this->logger->error("file realpath:".realpath(CACHE_PATH . $file_name));
      header( "Pragma: public" );
      header( "Expires: 0" );
      header( "Content-Encoding: none" );
      header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
      header( "Cache-Control: public" );
   header( "Content-Type: application/vnd.ms-excel"); 
      header( "Content-Description: File Transfer" );
      header( "Content-Disposition: attachment; filename=" . $file_name );
      header( "Content-Transfer-Encoding: binary" );
      header( "Content-Length: " . filesize ( CACHE_PATH . $file_name ) );
      readfile ( CACHE_PATH . $file_name );
  } else {
   $this->logger->error("export model :".$id." 错误:未生产文件");
      echo "<script>alert("export error, file not exists!")</script>";
  }