【发布时间】:2020-06-07 06:31:15
【问题描述】:
使用以下代码将 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时,文件打不开并给出一个对话框:
为什么会出现以及如何删除它?
【问题讨论】:
-
如果您的值都不包含双引号字符“您可以将制表符分隔符更改为逗号,并将文件扩展名更改为“.csv”格式。.xls 和 .xlsx 文件不是二进制文件纯文本。