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

php exporting xls: the file format and extension of don't match

我正在使用此代码导出 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>

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

您得到的是 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);