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

  [复制链接]
查看: 1696|回复: 190
  • TA的每日心情
    无聊
    11 小时前
  • 签到天数: 42 天

    [LV.5]常住居民I

    5110

    主题

    1717

    帖子

    1955

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

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

    本站资源全部免费(发布资源交换)! 赞助本站可获得VIP,全站免费下载!

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

    x
    网站后台有很多列表数据,常常都会有导出excel表格的需求,和大家分享一个实用的导出excel表格方法;
    不多说,上代码;
    [PHP] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    /**
         * @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] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    $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实现导入导出,更方便,更简洁!

    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    8122

    帖子

    1020

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    1020

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

    该用户从未签到

    5

    主题

    8184

    帖子

    994

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    994

    发表于 2018-11-22 11:15:49 | 显示全部楼层
    不知该说些什么。。。。。。就是谢谢
  • TA的每日心情
    奋斗
    6 天前
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    121

    帖子

    436

    积分

    豁然贯通

    Rank: 4

    积分
    436

    发表于 2018-11-22 13:08:00 | 显示全部楼层
    正需要,支持楼主大人了!

    该用户从未签到

    8

    主题

    7863

    帖子

    943

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    943

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

    该用户从未签到

    12

    主题

    8414

    帖子

    1072

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    1072

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

    该用户从未签到

    12

    主题

    8184

    帖子

    916

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    916

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

    该用户从未签到

    10

    主题

    8248

    帖子

    1019

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    1019

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

    该用户从未签到

    10

    主题

    8007

    帖子

    972

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    972

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

    该用户从未签到

    69

    主题

    8293

    帖子

    1010

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    1010

    发表于 2018-11-24 10:19:03 | 显示全部楼层
    珍惜生命,果断回帖。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    精彩图文
     
     
    在线客服
    技术支持
    工作时间:
    11:00-23:00

    平台简介

    Dmz社区(DmzSheQu.Com)是一家IT! 视频教程、电子书、源码、精品好文、软件于一体的交流分享网站.我们每天更新论坛资源(每星期平均每天5套),链接定期维护(失效链接秒更新) ---Dmz社区(如果我们有侵犯了您权益的资源请联系我们删除)

    QQ|Archiver|小黑屋|本站代理|Dmz社区 每日摇摇乐 | VIP购买

      © 2017-2018   Dmz社区  ICP备案号:

    返回顶部 返回列表