首页 > 解决方案 > PHP 生成的 Excel 文件无法在 Microsoft Excel 中打开,但适用于办公文件的 chrome 扩展名

问题描述

此代码在 PHP 中从 MySQL 生成一个 excel 文件并下载它。但问题是 excel 文件在 google chrome 的“Office Editing for Docs, Sheets & Slides”扩展中打开,但是当我尝试在 Microsoft excel 中打开它时显示无效的 excel 文件。如何解决这个问题?


    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment; filename='.$fileName);
    
    echo implode("\t", array_values($heading)) . "\n";
    
    while( $row = mysqli_fetch_array($result)) {
            $record=array();
            $record[]=$row["join_date"];
            $record[]=$agents[$row["agent_id"]];
            $record[]=$row["name"];
            $record[]=$row["amount"];
            $record[]=$brokerages[$row["brokerage"]];
            echo implode("\t", array_values($record)) . "\n";
    }

标签: phpmysqlexport-to-excel

解决方案


您发布的数据不是 Excel 或 CSV。您正在发送TSV

文件的正确内容类型是“ text/tab-separated-values

请参阅https://github.com/PHPOffice/PhpSpreadsheet/blob/master/samples/Basic/01_Simple_download_xls.php如何将您的数据下载为 XLS 文档。


推荐阅读