分享

php中phpexcel表格的导出

 陌瑾花开 2018-08-31
  
 /**
     * 消费记录的导出
     * @param string $type
     */
      public function xfjl_excel()
         {
             $startTime = $_POST['startDate']; //选择时间段(开始时间)
             $endTime = $_POST['endDate'];//结束时间
             // var_dump($startTime);
             // var_dump($endTime);
             // $S = strtotime($startTime);
             // $D = strtotime($endTime); 
             // var_dump($S);
             // var_dump($D);
               // exit;
            $header = ['订单号','写手老师姓名','收入/美金','应付费用/美金','实付费用/美金','利润/美金','日期'];
            $info = Db::query("select o.uid,o.order_sn,o.order_price,o.ctime,w.writer_price,w.paid_price,a.action_user from yiji_order o,yiji_writer_order w,yiji_writer_order_action a where o.order_sn = w.order_sn and o.uid = a.order_id  and  o.ctime >= $S and o.ctime <= $D group by o.ctime desc");
            // echo "<pre>";
            // var_dump($info);
            //  exit;
            if(empty($info)){
                $this -> error('没有数据记录或参数有问题');
            }else{
                $data = array();
                foreach ($info as $key => $v) {
                    $profit = $v['order_price'] - $v['writer_price'];
                    $data[]= array(
                        'order_sn' => $v['order_sn'],
                        'admin_username' => $v['action_user'],
                        'order_price'  => $v['order_price'],
                        'writer_price' => $v['writer_price'],
                        'paid_price' => $v['paid_price'],
                        'profit'    => $profit,
                        'ctime' => date('Y-m-d H:i:s', $v['ctime']),
                    );
                }
                //设置导出的文件名
                $fileName = "消费记录-" . date('Y-m-d H:i:s');
                //调用导出私有方法
                self::exportExcel($fileName, $header, $data);
            }  
        }

    /**
     * 导出私有方法
     * @param $fileName //导出保存文件名
     * @param $columnName //数据标题
     * @param $linkClearingArray //数据提
     */
    static function exportExcel($fileName, $columnName, $linkClearingArray)
    {
        //设置时间
        set_time_limit(0);
        //设置头部
        header('Content-Type: application/vnd.ms-excel;charset=utf-8');
        header("Content-Disposition:filename=" . $fileName . ".csv");
        // 打开PHP文件句柄,php://output 表示直接输出到浏览器
        $fp = fopen('php://output', 'a');
        // 将中文标题转换编码,否则乱码
        foreach ($columnName as $i => $v) {
            $columnName[$i] = $v;
        }
        // 将标题名称通过fputcsv写到文件句柄
        fputcsv($fp, $columnName);
        //将将要导出的数据赋值在数组
        $exportData = $linkClearingArray;
        //计算导出数量
        $linkClearingNumber = count($linkClearingArray);
        //循环读取数据并导出数据
        for ($t = 0; $t < $linkClearingNumber; $t++) {
            $row = $exportData[$t];
            foreach ($row as $i => $v) {
                $row[$i] = $v;
            }
            fputcsv($fp, $row);
        }
        // 将已经写到csv中的数据存储变量销毁,释放内存占用
        unset($exportData);
        //关闭避免占用内存
        ob_flush();
        flush();
        exit ();
    }

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约