使用以下代码将MySQL数据导出到Excel文件:
$i = 0;
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
$rowData = '';
foreach ($row as $value) {
$value = '"' . $value . '"' . "\t";
$rowData .= $value;
}
$setData .= trim($rowData) . "\n";
$i++;
}
$filename = $i." numbers ".date('d m Y') . ".xls";
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Pragma: no-cache");
header("Expires: 0");
echo ucwords($columnHeader) . "\n" . $setData . "\n";
它成功导出了文件,并且也可以正确打开,但是在打开文件之前会有一个对话框。
当我使用扩展名作为xlsx
时,文件未打开并显示一个对话框:
为什么会来以及如何将其删除?
您在行中使用了错误的定界符,请改用\ r \ n
$i = 0;
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
$rowData = '';
foreach ($row as $value) {
$value = '"' . $value . '"' . "\t";
$rowData .= $value;
}
$setData .= trim($rowData) . "\r\n";
$i++;
}
如果您愿意,可以尝试
implode(“ \ t”,array_values($ row))。 “ \ r \ n”;
将完整的rowData添加到setData中,php有很多功能可以探索
另一个认为是,在使用选择结果之前,您应该添加标题行。