从php导出到Excel时,我的代码中是否有任何遗漏

时间:2012-05-14 07:04:08

标签: php phpexcel

我的功能

 function xlstest(){
            $headers='SN'."\t".'Reservation ID'."\t".'Hotel Name'."\t".'Customer Name';
            $data='1'."\t".'234'."\t".'My hotel name'."\t".'Jonny';
            $filename='testing';
            header("Content-type: application/octet-stream");
            header("Content-Disposition: attachment; filename=".$filename.".xls");
            header("Pragma: no-cache");
            header("Expires: 0");
            echo "$headers\n$data";
        }

在管理面板中调用此功能时,它将导出到Excel,但文件没有上面的标题和数据,但它显示管理面板中显示的所有文本 enter image description here

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:0)

你根本没有使用 api。请阅读documentation并尝试使用api。

关于您正在使用的代码,请使用\t(后面和前面有空格)分隔字段。 另外,使用excels头文件代替octet-stream

header('Content-type: application/ms-excel');

用法:

function xlstest(){
    $headers='SN'." \t ".'Reservation ID'." \t ".'Hotel Name'." \t ".'Customer Name';
    $data='1'." \t ".'234'." \t ".'My hotel name'." \t ".'Jonny';
    $filename='testing';
    header("Content-type: application/ms-excel");
    header("Content-Disposition: attachment; filename=".$filename.".xls");
    header("Pragma: no-cache");
    header("Expires: 0");
    echo "$headers\n$data";
}

<强>更新

要导出CSV文件,您可以执行以下操作。它几乎相同,但分隔符是逗号,而内容类型是application/vnd.ms-excel

function csvtest(){
    $headers='SN'.",".'Reservation ID'.",".'Hotel Name'.",".'Customer Name';
    $data='1'.",".'234'.",".'My hotel name'.",".'Jonny';
    $filename='testing';
    header("Content-type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=".$filename.".csv");
    header("Pragma: no-cache");
    header("Expires: 0");
    echo "$headers\n$data";
}

答案 1 :(得分:0)

我的问题解决了。实际上我在<link rel="stylesheet" href=""/>

之下调用了这个函数
<script type="text/javascript" src=".... .."></script>

一旦我超越了这些css和脚本......我的问题就解决了奇怪.......