在PHP中导出到Excel时出错

时间:2018-05-16 10:47:06

标签: php excel phpexcel

执行此操作时:

<?php
        header("Content-type: application/vnd.ms-excel");
        header("Content-Disposition: attachment; filename=test.xls");
        header("Pragma: no-cache");
        header("Expires: 0");

       $flag = false;

       foreach($data as $row) {

         if(!$flag) {
           echo implode("\t", array_keys($row)) . "\n";
           $flag = true;
         }
        array_walk($row, __NAMESPACE__ . '\cleanData');
        echo implode("\t", array_values($row)) . "\n";
      }
      exit;

打开下载的.xls文件时出现如下错误。

  

您尝试打开Facemappsoft.xls的文件格式与文件扩展名不同

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您正在生成tab-separated values文件并为其提供Excel 97-2003兼容文件扩展名(* .xls)。

Excel在打开文件时抱怨这种不匹配。

要解决此问题,您需要为文件提供适当的扩展名(* .tsv),并将Content-Type标题更新为正确描述文件格式的标题,例如:

Content-Type: text/tab-separated-values