zoukankan      html  css  js  c++  java
  • 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');                                 //禁止缓存
        }
  • 相关阅读:
    jsp 特殊标签
    poj 1753 Flip Game 高斯消元 异或方程组 求最值
    zoj 3155 Street Lamp 高斯消元 异或方程组 求方案数
    poj1222 EXTENDED LIGHTS OUT 高斯消元解异或方程组 模板
    zoj 3930 Dice Notation 模拟
    zoj 3157 Weapon 线段树求逆序对数
    hdu 1242 Rescue BFS+优先队列
    hdu 3466 Proud Merchants 贪心+01背包
    zoj 3689 Digging 贪心+01背包
    hdu 2602 Bone Collector 01背包模板
  • 原文地址:https://www.cnblogs.com/cqlb/p/9593837.html
Copyright © 2011-2022 走看看