php导出xls:文件格式和扩展名不匹配

时间:2018-08-21 13:27:53

标签: php excel xls

我正在使用以下代码导出xls:

<?php
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: inline; filename=filename.xls");
?>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
my export
</body>
</html>

但是当我打开它时,我得到:
文件格式和扩展名不匹配。该文件可能已损坏或不安全。除非您信任其来源,否则请勿打开它。是否要打开它?
有办法避免吗?

1 个答案:

答案 0 :(得分:0)

您所拥有的是HTML,而不是Excel文件。正如Excel所说,文件格式和扩展名不匹配。如果要避免出现警告消息,请将其另存为HTML文件,然后从Excel中打开它。

<?php
header("Content-Disposition: inline; filename=filename.html");
?>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
my export
</body>
</html>

或输出其他文件格式,例如CSV。非常简单。

<?php
$my_data = [
    [1, 2, 3, 4, 5, 7],
    [9, 8, 7, 6, 5, 3],
];
header("Content-Type: text/csv");
header("Content-Disposition: attach; filename=filename.csv");
$h = fopen("php://output", "w");
foreach($my_data as $data) {
    fputcsv($h, $data);
}
fclose($h);