doubi5127
2018-08-21 13:27
浏览 344
已采纳

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

I'm exporting xls with this code:

<?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>

but when I open it, I get:
the file format and extension of don't match. the file could be corrupted or unsafe. unless you trust its source, don't open it. do you want to open it anyway?
is there a way to avoid it?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • dongwei7913 2018-08-22 21:40
    最佳回答

    What you've got there is HTML, not an Excel file. As Excel says, the file format and extension don't match. If you want to avoid the warning message, save it as an HTML file and open it from Excel.

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

    Or output a different file format such as CSV. It's very simple.

    <?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);
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题