zoukankan      html  css  js  c++  java
  • Thinkphp实现excel导出数据

    前端:

    点击导出触发click事件,传值export指令和args关键字(args是指我们是否有查询取哪些数据)到控制器

    $(document).on("click", "#go-export", function () {
    			var args = "";
    			if($('#keyword').val() != ''){
    				args = args + '/keyword/'+$('#keyword').val();
    			}
    			window.open('index/export/1'+args);
    	    });
    

    控制器:

            if(!empty($postData['keyword'])){
                    $map['project_name'] = array('like','%'.$postData['keyword'].'%');
                }
    	        $dataList = $goods->where($map)->select();
    	        for ($i = 0; $i < sizeof($dataList); $i++) {
                        $result[$i]['id'] = $dataList[$i]['id'];
    	            $result[$i]['合同号'] = $dataList[$i]['contract_number'];
    	            $result[$i]['项目名称'] = $dataList[$i]['project_name'];
    	            $result[$i]['销售月份'] = $dataList[$i]['sales_month'];
    	            $result[$i]['房型'] = $dataList[$i]['room_type'];
                        $result[$i]['渠道'] = $dataList[$i]['channel'];
    	            $result[$i]['售卖单价'] = $dataList[$i]['one_prices'];
    	            $result[$i]['结算单价'] = $dataList[$i]['all_prices'];
    	            $result[$i]['房间数量'] = $dataList[$i]['room_num'];
                        $result[$i]['减扣金额'] = $dataList[$i]['damount'];
    	            $result[$i]['备注'] = $dataList[$i]['note'];
    	            $result[$i]['更新日期'] = $dataList[$i]['update_time'];
    
                    }
                    $csv = "";
    	        for($i=0;$i<sizeof($result);$i++){
    	            if($i == 0){
    	                $head = '"';
    	                foreach($result[$i] as $key=>$value){
    	                    if($head != '"'){
    	                        $head .= '","';
    	                    }
    	                    $head .= $key;
    	                }
    	                $head .= ""
    ";
    	                $csv .= $head;
    	            }
    	            $csv .= '"' . implode('","', $result[$i]) . '"' . "
    ";
    	        }
    	        $this->export($csv);
             }
    

    下载控制器:ecport方法

     public function export($res){
    	    header("Cache-Control: public");
    	    header("Content-Description: File Transfer");
    	    header("Content-Disposition: attachment; filename=".date('YmdHis').".csv");
    	    header("Content-Type: application/csv");
    	    header("Content-Transfer-Encoding: binary");
            print mb_convert_encoding($res,"GBK", "UTF-8");
            //print iconv('UTF-8', 'GBK//IGNORE', $res);
    	
            }
    

      

  • 相关阅读:
    http://maxie.cnblogs.com/
    有一种爱叫错过
    Lotuser进阶系列(转)——多目录环境中的单点登陆1
    DOMINO中实现PDF在线编辑控件 and so on......(三)
    DOMINO中实现PDF在线编辑控件 and so on......(一)
    Lotuser进阶系列(转)——多目录环境中的单点登陆2
    在两个代理之间传递参数
    利用 DSAPI 为 Domino Web 用户定制用户名和口令认证
    通过 Lotus Domino Java 代理消费 Web 服务
    代理中如何获取参数么?
  • 原文地址:https://www.cnblogs.com/liuquan/p/8727796.html
Copyright © 2011-2022 走看看