我制作了一个脚本,该脚本输出带有从数据库带来的数据的XLS文件。问题是,当您在OSX和Linux上查看文件时,它看起来就像它应该的那样。
Windows上的行为
在Windows上,excel显示以下消息:
文件格式和扩展名'nameofthefile.xls'不匹配。文件可能已损坏或不安全。除非你信任.....
你遇到过这个问题吗?
$sql = "MY SQL QUERY";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$output .= '<table class="table" border="1"
<tr>
<th>MY Table heads</th>
<th>MY Table heads</th>
</tr>';
$count = 1;
while ($row = mysqli_fetch_array($result)) {
$data = strtotime($row['reg_date']);
$format_date = date("d.M.Y", $data);
$output .= '
<tr>
<td>' . $count++ . '</td>
<td>' . $row["id"] . '</td>
<td>' . $row["firstname"] . '</td>
<td>' . $row["lastname"] . '</td>
<td>' . $format_date . '</td>
</tr>';
}
$output .= '</table>';
header("Content-Type: application/xls");
header("Content-Disposition: attachement; filename=download.xls");
echo $output;
}
}
我使用Laravel与http://www.maatwebsite.nl/laravel-excel/docs遇到了同样的问题,我通过检查是否有一个干净的代码来解决问题,我在代码的某个地方有一个撇号(')字符,当我检测到它时,我只是擦除了该字符,文件成功导出。好运!
我对laravel的这个包有同样的问题,经过研究,我知道问题是web.php文件的编码!在我的情况下,编码文件是UTF-8- bom,当它改变为UTF-8问题解决了!我用的是notepad++