Thinkphp 导出列表页数据为csv格式

www.jswusn.com PHP 2023-12-04 14:18:18 75次浏览

在需要导出数据的controller里面增加以下php方法:

 /**
     * 导出
     * @throws 	hinkdbexceptionDataNotFoundException
     * @throws 	hinkdbexceptionDbException
     * @throws 	hinkdbexceptionModelNotFoundException
     */
    public function export()
    {
        $formModel=new FormsModel();

        $result=$formModel->scope(['show'])->order($formModel->sort)->select();
        $list=$result->toArray();
        /* 输入到CSV文件 */
        $html = "";

        /* 输出表头 */
        $filter = array(
            'name'=>'姓名',
            'mobile' => '手机号',
            'content'=>'内容',
            'create_time'=>'提交时间',
        );

        foreach ($filter as $key => $title) {
            $html .= $title . "	,";
        }
        $html .= "
";
        foreach ($list as $k => $v) {
            foreach ($filter as $key => $title) {
                if($key=='form_type'){
                    $html .= $formModel->form_type[$v[$key]] . "	, ";
                }else{
                    $html .= $this->replaceValues($v[$key]) . "	, ";
                }

            }
            $html .= "
";
        }

        /* 输出CSV文件 */
        header("Content-type:text/csv");
        header("Content-Disposition:attachment; filename=预约表单数据.csv");
        echo $html;
        exit();
    }

    protected function replaceValues($value){
        $value = str_replace("
","",$value);//过滤换行
        $value = str_replace("
","",$value);//过滤换行
        $value = str_replace("	","",$value);//过滤换行
        $value = str_replace("
","",$value);//过滤换行
//        $value = str_replace(" ","",$value);//过滤换行

        $value = str_replace(",",",",$value);//过滤逗号

        return $value;
    }


以上就是利用Thinkphp导出数据为csv,导出为csv格式的表格就不需要使用第三方的库,使用起来是会相对简单了许多!

技术分享

苏南名片

  • 电话:152-1887-1916
  • 邮箱:message@jswusn.com
  • 地址:江苏省苏州市相城区

热门文章

Copyright © 2018-2024 jswusn.com 版权所有

技术支持:苏州网站建设  苏ICP备18036849号