mysqli导出到xls问题


mysqli export to xls issue

我一直在努力完成这项工作,但我不知道问题出在哪里。我下载了一个xls文件,但它没有打开。我有一个像这样的mysql脚本,正在运行,我试图将其转换为mysqli,但可能出了问题。。。提前感谢

$sqlExp = "SELECT * FROM table";
    $countQryExp  = mysqli_query($link, $sqlExp );
  $filename = "sampledata.xls"; // File Name
header("Content-Disposition: attachment; filename='"$filename'"");
header("Content-Type: application/vnd.ms-excel");
$flag = false;
while($row=mysqli_fetch_array($countQryExp,MYSQLI_ASSOC))
                {
    if(!$flag) {
      // display field/column names as first row
      echo implode("'t", array_keys($row)) . "'r'n";
      $flag = true;
    }
    echo implode("'t", array_values($row)) . "'r'n";
  }

生成Excel文件要比为其提供application/vnd.ms-excel的内容类型多得多。Excel是一种非常特殊的格式,而您正在以一种非常容易破坏的方式生成TSV文件-制表符分隔的值(如果有人在您网站的某个字段或新行中放入't,会发生什么?)。

如果你想生成真正的Excel文件,你需要各种库中的一个。如果CSV/TSV可以,只需导出一个具有适当标题的.csv/.tsv文件。