2

Codeigniter を使用して、MYSQL データベースのデータを DOC ファイルにエクスポートしたいと考えています。私のコードは次のとおりです。

アンカーが次のように宣言されている「profile_top_view.php」という名前のビュー:

<?php echo anchor('welcome/todoc','Export Posts to DOC File') ?>

「welcome.php」という名前のコントローラーには次の機能があります。

 public function todoc() {
    $id = $this->tank_auth->get_user_id();
    $this->mpdf->useOnlyCoreFonts = true;
    $filename = "POSTS";
    $data['member'] = $this->s_model->alldata($id);
    $this->load->view('export_posts_doc_view', $data, true);
    $this->index();
}

「export_posts_doc_view.php」という名前のビュー。DOC ファイル用のテーブルが作成されます。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Exported Posts in PDF File</title>
    </head>
    <body>
        <?php
        header("Content-Type: application/vnd.ms-word");
        header("Expires: 0");
        header("Cache-Control:  must-revalidate, post-check=0, pre-check=0");
        header("Content-disposition: attachment; filename=\"posts.doc\"");
        ?>


        <div id="container">
            <h4>Posts</h4>
            <table border="1">
                <tr>
                    <th>title</th>
                    <th>content</th>
                    <th>group</th>
                    <th>video_url</th>
                    <th>pic_path</th>
                    <th>name</th>
                    <th>phone</th>
                    <th>email</th>
                    <th>yes_no</th>
                    <th>single-line-text</th>
                    <th>para_text</th>
                    <th>pdf_file_name</th>
                    <th>add_photo_name</th>
                </tr>
<?php
foreach ($member as $rows) {
    ?>
                    <tr>
                        <td><?php echo $rows['title'] ?></td>
                        <td><?php echo $rows['content'] ?></td>
                        <td><?php echo $rows['group'] ?></td>
                        <td><?php echo $rows['video_url'] ?></td>
                        <td><?php echo $rows['pic_path'] ?></td>
                        <td><?php echo $rows['name'] ?></td>
                        <td><?php echo $rows['phone'] ?></td>
                        <td><?php echo $rows['email'] ?></td>
                        <td><?php echo $rows['yes_no'] ?></td>
                        <td><?php echo $rows['single-line-text'] ?></td>
                        <td><?php echo $rows['para_text'] ?></td>
                        <td><?php echo $rows['pdf_file_name'] ?></td>
                        <td><?php echo $rows['add_photo_name'] ?></td>
                    </tr>
    <?php
}
?>
            </table>

            <br> <br>

        </div>
    </body>
</html>

また、関数を持つ「s_model.php」という名前のモデル:

  function alldata($id)
    {
        $this->db->select('');
        $this->db->from('posts');
            $this->db->where('user-id',$id);
        $getData = $this->db->get();
        if($getData->num_rows() > 0)
        return $getData->result_array();
        else return null;
    }

そのヘッダーをそのままにしておくと、次のようにエラーが表示されます。

Web アドレスの Web ページが見つかりませんでした: http://www.my_ip.com/project/welcome/todoc

しかし、同じヘッダーを削除すると、コントローラーにエコーされたものが表示されます。次の URL からそのヘッダーを取得しました: exporting MS word documents using codeigniter?

誰でも私にそれをどうすればよいか教えてもらえますか?

前もって感謝します..

4

2 に答える 2

2

答えを得た、

コントローラ「welcome.php」にいくつかの変更を加えました。

public function todoc() {
        $id = $this->tank_auth->get_user_id();
        $this->mpdf->useOnlyCoreFonts = true;
        $filename = "POSTS";
        $data['member'] = $this->s_model->alldata($id);      
        $this->load->view('export_posts_doc_view', $data);
    }
于 2013-03-05T09:30:48.937 に答える
0

以下のコードを参照してください。

    function exportexcel()
    {
    header("Content-type: application/vnd.ms-excel"); 

   /* change the content-type depends upon our requerment */

        header("Content-Disposition: attachment; filename=Sadhak.xls");

        header("Pragma: no-cache");

        header("Expires: 0");

    $table = "your content goes here";

    echo  $table;
    }   
于 2013-10-10T11:55:33.733 に答える