我正在尝试将mysql数据导出到excel。我已经尝试了phpexcel类,并且不能在我的主机上使用它,因为它们没有安装zip功能。我无法将数据导出到csv,因为客户端“想看到深浅的颜色...”,因此必须进行格式化。因此,看起来我一直在构建要传递给Excel的表。 (除非任何人对其他课程有任何想法!)

我的代码有问题,它可以很好地导出到excel,并且第一行的格式正确。在所有后续行上,所有数据都被“转储”到一个单元格中。
这是代码:

$table .= '<table border="0" cellpadding="0" cellspacing="0"><tr>';
        $table .= '<td style="background-color:#000099;color:#FFFFFF;">Date</td>';
        $table .= '<td style="background-color:#000099;color:#FFFFFF;">Name</td>';
        $table .= '<td style="background-color:#000099;color:#FFFFFF;">Address</td>';
        $table .= '<td style="background-color:#000099;color:#FFFFFF;">City</td>';
        $table .= '</tr>';
        while($row=mysql_fetch_array($result)){
        $table .= '<tr>';
        $table .= '<td style="background-color:#FFFCCC">'.$row['date'].'</td>';
        $table .= '<td style="background-color:#FFFCCC">'.$row['name'].'</td>';
        $table .= '<td style="background-color:#FFFCCC">'.$row['address'].'</td>';
        $table .= '<td style="background-color:#FFFCCC">'.$row['city'].'</td>';
        $table .= '</tr>';
        $table .= '</table>';
        }
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=Itinerary-$today.xls ");
header("Content-Transfer-Encoding: binary ");
echo $table;


感谢任何人可以就此主题发表的想法!

最佳答案

尝试移动此行:

$table .= '</table>';


到循环之外。

循环的最后几行应如下所示:

    $table .= '</tr>';
}
$table .= '</table>';


您在循环之前打开了一个表,应该在循环之后关闭该表。

10-05 20:33
查看更多