我制作了一个脚本,输出一个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;
}
}
答案 0 :(得分:1)
我使用Laravel和http://www.maatwebsite.nl/laravel-excel/docs有同样的问题,我通过检查是否有一个干净的代码来解决问题,我的代码中有一个撇号(')字符,当我检测到它时刚删除该字符,文件导出成功。祝你好运!
答案 1 :(得分:0)
我在使用laravel的软件包时遇到了同样的问题,经过研究,我知道问题出在web.php文件的编码!在我的情况下,编码文件为UTF-8-BOM,将其更改为UTF-8后,问题解决了! 我用记事本++做过