-1

私のコード出力はこのようなもので、最大 100 のテーブル行を出力します。

エクセルにも出力したい

<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

これにより、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 に答える
1

HTML テーブルを Excel に直接エクスポートできる、あまり知られていないトリックがあります。

HTML テーブルを生成したら、次のヘッダーを設定して、ダウンロードとして提供します。

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

<h2>これを行う前に、あなたと他の HTML を削除することをお勧めします。そうすれば、テーブルだけが残ります。この小さなトリックの利点は、書式設定も保存されるため、太字のテキスト、背景色、その他すべてが保持されることです。ユーザーが「実際の」Excel ファイルが必要な場合は、単純に保存できます。

もう 1 つの方法は、CSV として出力するか、PHPExcel などのサードパーティ ライブラリを使用して、必要なものを実現することです。ただし、このような単純な出力の場合は、HTML テーブルを Excel で開くか、CSV を最速のルートとして開くことをお勧めします。

于 2012-12-29T08:52:12.327 に答える
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 に答える