网站后台有很多列表数据,常常都会有导出excel表格的需求,和大家分享一个实用的导出excel表格方法;

不多说,上代码;

 1  /**
 2      * @param array $data 要导出的数据
 3      * @param array $title excel表格的表头
 4      * @param string $filename 文件名
 5      */
 6     public function daochu_excel($data=array(),$title=array(),$filename='报表'){//导出excel表格
 7         //处理中文文件名
 8         ob_end_clean();
 9         Header('content-Type:application/vnd.ms-excel;charset=utf-8');
10     
11         header("Content-Disposition:attachment;filename=export_data.xls");
12         //处理中文文件名
13         $ua = $_SERVER["HTTP_USER_AGENT"];
14     
15         $encoded_filename = urlencode($filename);
16         $encoded_filename = str_replace("+", "%20", $encoded_filename);
17         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') {
18             header('Content-Disposition: attachment; filename="' . $encoded_filename . '.xls"');
19         }else {
20             header('Content-Disposition: attachment; filename="' . $filename . '.xls"');
21         }
22         header ( "Content-type:application/vnd.ms-excel" );
23     
24     
25         $html = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
26             <html xmlns='http://www.w3.org/1999/xhtml'>
27             <meta http-equiv='Content-type' content='text/html;charset=UTF-8' />
28             <head>
29     
30             <title>".$filename."</title>
31             <style>
32             td{
33                 text-align:center;
34                 font-size:12px;
35                 font-family:Arial, Helvetica, sans-serif;
36                 border:#1C7A80 1px solid;
37                 color:#152122;
38                 width:auto;
39             }
40             table,tr{
41                 border-style:none;
42             }
43             .title{
44                 background:#7DDCF0;
45                 color:#FFFFFF;
46                 font-weight:bold;
47             }
48             </style>
49             </head>
50             <body>
51             <table width='100%' border='1'>
52               <tr>";
53         foreach($title as $k=>$v){
54             $html .= " <td class='title' style='text-align:center;'>".$v."</td>";
55         }
56     
57         $html .= "</tr>";
58     
59         foreach ($data as $key => $value) {
60             $html .= "<tr>";
61             foreach($value as $aa){
62                 $html .= "<td>".$aa."</td>";
63             }
64     
65             $html .= "</tr>";
66     
67         }
68         $html .= "</table></body></html>";
69         echo $html;
70         exit;
71     }

$title参数的数据是一个一维数组,如下:
$data参数是一个二维数组,如下:

 

调用方法:

 1 $daochuData = DB::table('scholarship_to_weixin as s')->leftJoin('users as u','s.uid','=','u.id')
 2                 ->leftJoin('admin as a','a.id','=','s.tx_checkid')
 3                 ->orderBy('s.times','desc')
 4                 ->select('s.*','u.nickname','u.tel','u.id as u_id','a.name as a_name','u.admin_beizhu_name')
 5                 ->get();
 6 
 7             $title = array('序号','申请时间','申请人','备注名称','申请人手机号','提现金额','操作时间','操作人');
 8 
 9             $arr = [];
10             foreach($daochuData as $k=>$v){
11                 $arr[] = array(
12                         $k+1,
13                         $v->times,
14                         $v->nickname,
15                         $v->admin_beizhu_name,
16                         $v->tel,
17                         $v->money,
18                         $v->s_times,
19                         $v->a_name
20                 );
21             }
22             
23             $this->daochu_excel($arr,$title,'红包提现到微信记录');

 

结果:

 

希望对您有帮助。谢谢!

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程