0

HTML テーブルを Excel にエクスポートしたいと考えています。

HTML テーブルを CSV および Excel にエクスポートするために、jQuery プラグインを使用してさまざまなクライアント側オプションを調べましたが、これらは IE でサポートされておらず、すべてのブラウザーで警告メッセージが表示されるため、適切ではありません。また、大きな Excel ファイルの場合、クライアント側のエクスポートは最適ではありません。

PHP を使用しているので PHPExcel も調べましたが、HTML テーブルを Excel にエクスポートするためのネイティブ サポートはないようです。また、データベースからの入力に基づいて変更されたカスタム テーブルがあることを考えると、データベース オブジェクトを PHPExcel に直接出力することはできません。

私は MVC アプローチで Yii フレームワークを使用しています。

だから私が本当に欲しいのは、HTML テーブルを Excel にエクスポートできるようにすることです。これを行う方法のアイデアはありますか?? 私は本当にこれについて助けが必要です。

4

3 に答える 3

0

CSVとしてエクスポートすることを検討しましたか?

Excel は、CSV をインポートして、データのテーブル (罫線やその他の装飾なしの ofc) を作成できます。

スプレッドシートを作成するための PHP クラスを作成しました。

<?php

class Spreadsheet {

    private $grid = array();

    public function setCell(/*int*/ $x, /*int*/ $y, /*mixed*/ $value) {
        for($yy=0; $yy<=$y; $yy++) {
            if(!isset($this->grid[$yy])) {
                $this->grid[$yy] = array();
            }
        }

        for($xx=0; $xx<=$x; $xx++) {
            if(!isset($this->grid[$y][$xx])) {
                $this->grid[$y][$xx] = null;
            }
        }

        $this->grid[$y][$x] = $value;
    }

    // final command executed, including "exit".
    public function sendAsCsv(/*string*/ $filename) {
        header('Content-type: text/csv; charset=utf-8');
        header('Content-Language: en');
        header('Content-Disposition: attachment; filename="' . $filename . '"');
        header("Pragma: no-cache");
        header("Expires: 0");

        ob_end_clean();

        $outputBuffer = fopen("php://output", 'w');

        $this->appendToFile($outputBuffer);

        fclose($outputBuffer);
        exit;
    }

    public function appendToFile(/*resource*/ $fileHandle) {
        foreach($this->grid as $val) {
            fputcsv($fileHandle, $val);
        }
    }
}
于 2013-07-30T13:54:21.090 に答える
0

このプラグインを試すことができます。IE もサポートしています - tableExport.js

HTML:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="src/jquery.table2excel.js"></script>
<body>
<tr class="noExl">
  <th>#</th>
  <th>Column heading</th>
  <th>Column heading</th>
  <th>Column heading</th>
</tr>
</body>

jQuery:

$("button").click(function(){
  $("#table2excel").table2excel({
    // exclude CSS class
    exclude: ".noExl",
    name: "Excel Document Name"
  });
});

プラグインのダウンロード: http://www.jqueryscript.net/table/Export-Html-Table-To-Excel-Spreadsheet-using-jQuery-table2excel.html

于 2015-11-23T08:52:12.217 に答える
0

SQL Reporting Services を使用してみることができます。少し重いですが、HTML テーブルをレポートとして作成できます。Reporting Services を使用すると、レポートを Excel ドキュメント (または PDF、画像など) として表示できます。

そのようなドキュメントに一貫した出力を得るには、これが最も簡単な方法であることがわかりました。

PHP から Reporting Services を呼び出そうとしたことはありませんが、実行できると確信しています。

それを説明する MS の Brian Swan によるブログ記事があります -

http://blogs.msdn.com/b/brian_swan/archive/2010/09/23/rendering-sql-server-reports-as-excel-documents-with-php.aspx

私は自分で試したことがないので、保証はできませんが、出発点としては役立つかもしれません。

于 2013-07-30T13:51:36.810 に答える