将MySQL数据导出到Excel

时间:2013-10-28 15:22:35

标签: php mysql excel

我一直在寻找将数据导出到Excel电子表格的方法。我已经尝试了大量的例子并且没有成功。这是我当前的代码,返回“查询失败!”。但是,在更改“ORDER BY”时,电子表格会返回数据,但会在下面循环错误。这是我发现并正在使用的代码:

$con = mysql_connect($hostname,$username,$password,$db_name) or die('Could not connect: ' . mysql_error());

  function cleanData(&$str)
    {
      $str = preg_replace("/\t/", "\\t", $str);
      $str = preg_replace("/\r?\n/", "\\n", $str);

      if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
    }

    $filename = "website_data_" . date('Ymd') . ".xls";

    header("Content-Disposition: attachment; filename=\"$filename\"");
    header("Content-type: application/vnd.ms-excel; charset=UTF-16LE");

    $flag = false;
    $result = mysql_query("SELECT * FROM test ORDER BY field") or die('Query failed!');

    while(false !== ($row = mysql_fetch_assoc($result))) 
      {
        if(!$flag) 
          {
            echo implode("\t", array_keys($row)) . "\r\n";
            $flag = true;
          }

        array_walk($row, 'cleanData');
        echo implode("\t", array_values($row)) . "\r\n";
     }

谁能告诉我为什么会这样? (使用mysqli函数也会发生同样的事情)

0 个答案:

没有答案