dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6320|回复: 185

[功能实现] php数据导出到excel表格功能的实现

  [复制链接]
  • TA的每日心情
    奋斗
    昨天 05:50
  • 签到天数: 235 天

    [LV.7]常住居民III

    4425

    主题

    1430

    帖子

    9850

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    9850
    发表于 2018-11-21 23:05:50 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    网站后台有很多列表数据,常常都会有导出excel表格的需求,和大家分享一个实用的导出excel表格方法;
    不多说,上代码;
    [PHP] 纯文本查看 复制代码
    /**
         * @param array $data 要导出的数据
         * @param array $title excel表格的表头
         * @param string $filename 文件名
         */
        public function daochu_excel($data=array(),$title=array(),$filename='报表'){//导出excel表格
            //处理中文文件名
            ob_end_clean();
            Header('content-Type:application/vnd.ms-excel;charset=utf-8');
        
            header("Content-Disposition:attachment;filename=export_data.xls");
            //处理中文文件名
            $ua = $_SERVER["HTTP_USER_AGENT"];
        
            $encoded_filename = urlencode($filename);
            $encoded_filename = str_replace("+", "%20", $encoded_filename);
            if (preg_match("/MSIE/", $ua) || preg_match("/LCTE/", $ua) || $ua == 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko') {
                header('Content-Disposition: attachment; filename="' . $encoded_filename . '.xls"');
            }else {
                header('Content-Disposition: attachment; filename="' . $filename . '.xls"');
            }
            header ( "Content-type:application/vnd.ms-excel" );
        
        
            $html = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
                <html xmlns='http://www.w3.org/1999/xhtml'>
                <meta http-equiv='Content-type' content='text/html;charset=UTF-8' />
                <head>
        
                <title>".$filename."</title>
                <style>
                td{
                    text-align:center;
                    font-size:12px;
                    font-family:Arial, Helvetica, sans-serif;
                    border:#1C7A80 1px solid;
                    color:#152122;
                    width:auto;
                }
                table,tr{
                    border-style:none;
                }
                .title{
                    background:#7DDCF0;
                    color:#FFFFFF;
                    font-weight:bold;
                }
                </style>
                </head>
                <body>
                <table width='100%' border='1'>
                  <tr>";
            foreach($title as $k=>$v){
                $html .= " <td class='title' style='text-align:center;'>".$v."</td>";
            }
        
            $html .= "</tr>";
        
            foreach ($data as $key => $value) {
                $html .= "<tr>";
                foreach($value as $aa){
                    $html .= "<td>".$aa."</td>";
                }
        
                $html .= "</tr>";
        
            }
            $html .= "</table></body></html>";
            echo $html;
            exit;
        }
    

    $title参数的数据是一个一维数组,如下:
    1405671-20180927144956692-1915647187.png
    $data参数是一个二维数组,如下:
    1405671-20180927144856465-401743902.png

    调用方法:
    [PHP] 纯文本查看 复制代码
    $daochuData = DB::table('scholarship_to_weixin as s')->leftJoin('users as u','s.uid','=','u.id')
                    ->leftJoin('admin as a','a.id','=','s.tx_checkid')
                    ->orderBy('s.times','desc')
                    ->select('s.*','u.nickname','u.tel','u.id as u_id','a.name as a_name','u.admin_beizhu_name')
                    ->get();
    
                $title = array('序号','申请时间','申请人','备注名称','申请人手机号','提现金额','操作时间','操作人');
    
                $arr = [];
                foreach($daochuData as $k=>$v){
                    $arr[] = array(
                            $k+1,
                            $v->times,
                            $v->nickname,
                            $v->admin_beizhu_name,
                            $v->tel,
                            $v->money,
                            $v->s_times,
                            $v->a_name
                    );
                }
                $this->daochu_excel($arr,$title,'红包提现到微信记录');
    

    结果:
    1405671-20180927145650413-242680932.png



    教程就到这里,这只是其中一种方法,还有一种是利用PHPExcel实现导入导出,更方便,更简洁!

    回复

    使用道具 举报

    该用户从未签到

    35

    主题

    7882

    帖子

    1006

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1006

    发表于 2018-11-22 10:57:02 | 显示全部楼层
    学习了,不错,讲的太有道理了

    该用户从未签到

    17

    主题

    7958

    帖子

    986

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    986

    发表于 2018-11-22 11:15:49 | 显示全部楼层
    不知该说些什么。。。。。。就是谢谢

    该用户从未签到

    20

    主题

    7658

    帖子

    937

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    937

    发表于 2018-11-23 00:16:23 | 显示全部楼层
    相当不错,感谢无私分享精神!

    该用户从未签到

    23

    主题

    8155

    帖子

    1052

    积分

    荣誉会员

    积分
    1052

    发表于 2018-11-23 15:25:31 | 显示全部楼层
    珍惜生命,果断回帖。

    该用户从未签到

    26

    主题

    7950

    帖子

    902

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    902

    发表于 2018-11-23 17:35:01 | 显示全部楼层
    学习了,谢谢分享、、、

    该用户从未签到

    29

    主题

    8020

    帖子

    1015

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1015

    发表于 2018-11-23 17:57:45 | 显示全部楼层
    有竞争才有进步嘛

    该用户从未签到

    17

    主题

    7762

    帖子

    971

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    971

    发表于 2018-11-23 21:13:59 | 显示全部楼层
    珍惜生命,果断回帖。

    该用户从未签到

    94

    主题

    8057

    帖子

    1006

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1006

    发表于 2018-11-24 10:19:03 | 显示全部楼层
    珍惜生命,果断回帖。

    该用户从未签到

    34

    主题

    7943

    帖子

    1037

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1037

    发表于 2018-11-24 11:28:30 | 显示全部楼层
    正需要,支持楼主大人了!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-4-20 16:07 , Processed in 0.138151 second(s), 45 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表