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

  [复制链接]
查看: 1373|回复: 156

5168

主题

1615

帖子

1247

积分

会|员

Rank: 9Rank: 9Rank: 9

积分
1247
发表于 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

主题

7478

帖子

1020

积分

技冠群雄

Rank: 6Rank: 6

积分
1020

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

5

主题

7525

帖子

994

积分

技冠群雄

Rank: 6Rank: 6

积分
994

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

0

主题

120

帖子

432

积分

豁然贯通

Rank: 4

积分
432

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

8

主题

7206

帖子

943

积分

技冠群雄

Rank: 6Rank: 6

积分
943

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

12

主题

7762

帖子

1072

积分

技冠群雄

Rank: 6Rank: 6

积分
1072

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

12

主题

7535

帖子

916

积分

技冠群雄

Rank: 6Rank: 6

积分
916

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

10

主题

7643

帖子

1019

积分

技冠群雄

Rank: 6Rank: 6

积分
1019

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

10

主题

7347

帖子

972

积分

技冠群雄

Rank: 6Rank: 6

积分
972

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

69

主题

7622

帖子

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备案号:

返回顶部 返回列表