-1

我的代码输出是这样的,它最多可以打印 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

4 回答 4

2

尝试 PHPOffice\PHPExcel 库

https://github.com/PHPOffice

于 2012-12-29T08:49:36.357 回答
1

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

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

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

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

另一种选择是将其输出为 CSV,或者使用 PHPExcel 等第三方库来实现您所需要的。不过,对于这样简单的输出,我建议在 Excel 中打开 HTML 表,或者 CSV 作为最快的路径。

于 2012-12-29T08:52:12.327 回答
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);
}
于 2012-12-29T08:49:46.383 回答
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 中的新行

于 2012-12-29T08:50:55.213 回答