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

标签 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>

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

最佳答案

您所拥有的是 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);

关于php 导出 xls : the file format and extension of don't match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51949837/

相关文章:

php array_intersect 关联和索引数组

excel - Outlook 项目更改重复

vba - 在 VBA 中使用控制台作为调试窗口

python - 将三个 csv/xls 文件拉入数据帧会导致找不到其中一个

iOS:读取 XLS

java - Apache POI setPrintArea 为 A4 页面大小

php - 如何在 cakephp 中重定向到外部 url

php - 为什么有些 php 类有一个空的 init() 方法?

PHP/MySQL 农历

excel - 输入数据后如何卡住 =today() 函数