• PHP 下载mysql数据到PHPExcel表格


    第一步:先到官网(https://github.com/PHPOffice/PHPExcel)下载PHPExcel

    第二步:放到第三方库

    第三步:

     /**
         * 封装:信息导出
         * @param $day
         * @param string $tableName
         * @throws PHPExcel_Exception
         * @throws PHPExcel_Reader_Exception
         */
        public function Db2Eexcel($data, $tableName = "用户支付数据"){
    
            vendor("PHPExcel.PHPExcel");
    
            // 1. 实例化工作簿
            $excel = new PHPExcel();
    
            // 2. 得到前当活动工作表
            $sheet = $excel->getActiveSheet();
    
            // 3. Excel表格式,这里简略写了14列
            $letter = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q'];
    
            // 3.1 表头数组
            $tableheader = ['ID','订单创建时间','订单处理时间','支付平台单号','商户订单号','支付类型','支付金额','实际支付金额','银行卡','商品名称','支付状态','游戏支付状态','账号','服务器ID','渠道','子渠道','游戏ID'];
    
            // 3.2 填充表头信息, 并设置样式
            for($i = 0;$i < count($tableheader);$i++) {
                $sheet->getCell("$letter[$i]1")->setValue("$tableheader[$i]");
                $sheet->getStyle("$letter[$i]1")->getAlignment()->setHorizontal('center');    // 统一设置水平居中
                $sheet->getStyle("$letter[$i]1")->getAlignment()->setVertical('center');      // 统一设置垂直居中
                $sheet->getStyle("$letter[$i]1")->getFont()->getColor()->setRGB('b5211a');    // 统一设置单元格字段颜色
                $sheet->getStyle("$letter[$i]1")->getFont()->setSize(10);                     // 统一设置字体大小
                $sheet->getStyle("$letter[$i]")->getFont()->setSize(10);
                $sheet->getStyle("$letter[$i]1")->getFont()->setBold(true);                   // 统一设置加粗
                $sheet->getColumnDimension("$letter[$i]")->setWidth(20);                      // 统一设置宽度
            }
    
            // 3.3 样式:第1行的高度
            $sheet->getRowDimension('1')->setRowHeight(30);
    
            // 3.4 样式:列的宽度
            $sheet->getColumnDimension('A')->setWidth(10);
            $sheet->getColumnDimension('B')->setWidth(20);
            $sheet->getColumnDimension('C')->setWidth(20);
            $sheet->getColumnDimension('D')->setWidth(30);
            $sheet->getColumnDimension('E')->setWidth(30);
            $sheet->getColumnDimension('F')->setWidth(10);
            $sheet->getColumnDimension('G')->setWidth(10);
            $sheet->getColumnDimension('H')->setWidth(15);
            $sheet->getColumnDimension('I')->setWidth(10);
            $sheet->getColumnDimension('J')->setWidth(10);
            $sheet->getColumnDimension('K')->setWidth(10);
            $sheet->getColumnDimension('L')->setWidth(15);
            $sheet->getColumnDimension('M')->setWidth(10);
            $sheet->getColumnDimension('N')->setWidth(10);
            $sheet->getColumnDimension('O')->setWidth(10);
            $sheet->getColumnDimension('P')->setWidth(10);
            $sheet->getColumnDimension('Q')->setWidth(20);
    
            // 4. 填充表格信息
            for ($i = 2, $k = 0; $i <= count($data)+1; $i++, $k++) {
                $j = 0;
    
                // 格式化:时间
                if(!empty($data[$k]['ftime'])){
                    $data[$k]['ftime'] = date('Y/m/d H:i:s', $data[$k]['ftime']);
                }
                if(!empty($data[$k]['ptime'])){
                    $data[$k]['ptime'] = date('Y/m/d H:i:s', $data[$k]['ptime']);
                }
    
                // 格式化:支付类型 1:支付宝 2:微信
                if(!empty($data[$k]['paytype'])){
                    if($data[$k]['paytype'] == 1){
                        $data[$k]['paytype'] = "支付宝";
                    }
                    if($data[$k]['paytype'] == 2){
                        $data[$k]['paytype'] = "微信";
                    }
                }
    
                //格式化:支付状态1成功0失败
                if(isset($data[$k]['paystatus']))
                {
                    $data[$k]['paystatus'] = $data[$k]['paystatus'] == 1 ? "成功" : "失败";
                }
                if(isset($data[$k]['gamepaystatus']))
                {
                    $data[$k]['gamepaystatus'] = $data[$k]['gamepaystatus'] == 1 ? "成功" : "失败";
                }
    
                foreach ($data[$i - 2] as $key=>$value) {
                    $sheet->getCell("$letter[$j]$i")->setValue("$value");
                    $sheet->getStyle("$letter[$j]$i")->getAlignment()->setHorizontal('center');
                    $j++;
                }
            }
    
            // 6. 保存文件:输出到浏览器
            $writer = PHPExcel_IOFactory::createWriter($excel,'Excel2007');
            self::browser_export('Excel2007', $tableName.'.xlsx');    //输出到浏览器
            $writer->save("php://output");
        }
    
        /**
         * 输出到浏览器
         * @param $type
         * @param $filename
         */
        function browser_export($type,$filename){
            if($type=="Excel5"){
                header('Content-Type: application/vnd.ms-excel');//告诉浏览器将要输出excel03文件
            }else{
                header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;');//告诉浏览器数据excel07文件
            }
            ob_end_clean();//清除缓存区,避免乱码
            header('Content-Disposition: attachment;filename="'.$filename.'"'); //告诉浏览器将输出文件的名称
            header('Cache-Control: max-age=0');                                 //禁止缓存
        }
  • 相关阅读:
    【转贴】Cookie + Session + OAuth + SSO
    zz淘宝商品库MySQL优化实践
    HIVE 数据倾斜调优总结zz
    数据挖掘笔记(一)
    hive函数参考手册
    hive QL(HQL)简明指南zz
    数据挖掘笔记(二)
    python format string (转)
    hive 中转义符使用问题
    关于文档管理
  • 原文地址:https://www.cnblogs.com/cqlb/p/9593837.html
Copyright © 2020-2023  润新知