PHP输出导出excel表

时间:2012-12-29 08:46:37

标签: php arrays excel

我的代码输出就是这样,可以打印多达100个表格行。

我也想在excel中导出它

<h2>Results</h2>
<table width=80%><tr><th width="40%">Head1</th><th nowrap width="20%">Head2</th><th nowrap width="20%">Head3</th></tr>
    <?php $count = count($abc);

    for ($i = 0; $i < $count; $i++)
    {
         $cont=round($abc[$i]->a);
         $pa = $p->get($abc[$i]->u);     
        echo "<tr><td><a href='" . $abc[$i]->u . "' target='_blank'>" . $abc[$i]->u . "</a></td><td align='center'>" . $cont . "</td><td align='center'>" . $pa . "</td></tr>";
    }
    ?>
    </table>

4 个答案:

答案 0 :(得分:2)

尝试PHPOffice \ PHPExcel库

https://github.com/PHPOffice

答案 1 :(得分:1)

这将创建一个名为output

的csv文件
if($fh = fopen("output.csv","w")){
    for ($i = 0; $i < $count; $i++){
        $cont=round($abc[$i]->a);
        $pa = $p->get($abc[$i]->u);     
        fputcsv($fh,array($abc[$i]->u,$cont,$pa));
    }
    fclose($fh);
}

答案 2 :(得分:1)

有一个鲜为人知的技巧,您可以将HTML表格直接导出到Excel中。

生成HTML表后,只需设置以下标题即可将其作为下载提供:

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=test.xls");

请注意,我建议您在执行此操作之前删除<h2>和任何其他HTML,因此只留下一个表格。这个小技巧的一个优点是它也会保存您的格式,因此任何粗体文本,背景颜色或其他任何内容都会被保留。如果用户想要一个“真正的”Excel文件,他们可以简单地将其保存。

另一种方法是将其输出为CSV,或使用第三方库(如PHPExcel)来实现您的需求。但是,对于这样简单的输出,我建议在Excel中打开HTML表,或者将CSV作为最快的路径。

答案 3 :(得分:0)

您可以使用以下代码获取excel上的输出

$csv_output.='\n';
$csv_output.='<h2>Results</h2>';

    $csv_output.='\n';

 for ($i = 0; $i < $count; $i++)
    {
         $cont=round($abc[$i]->a);
         $pa = $p->get($abc[$i]->u);     
         $csv_output.= $abc[$i]->u . "," . $cont . "," . $pa . "\n";
    }


         header("Content-type: application/vnd.ms-excel");
         header("Content-disposition: csv" . date("Y-m-d") . ".csv");
         header( "Content-disposition: filename=".$filename.".csv");
         print $csv_output;

所以你需要为每个创建一个逗号分隔的字符串 \ n表示excel中的新行