博主信息
博文 11
粉丝 1
评论 1
访问量 11637
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Thinkphp使用PHPEXcel导出文件
豆芽的博客
原创
1268人浏览过

Thinkphp使用PHPEXcel导出文件

第一步,当然是到PHPExcel官网去下载phpexcel插件,将其放到thinkphp的vendor目录下。

第二,将到入数据的具体逻辑封装到工具类中。具体逻辑代码如下:

class UntilLogic{
   public function phpExcelList($field, $list, $title='文件')
   {
       vendor('phpExcel.PHPExcel');
       $objPHPExcel = new \PHPExcel();
       $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel); //设置保存版本格式
       foreach ($list as $key => $value) {
           foreach ($field as $k => $v) {
               if ($key == 0) {
                   $objPHPExcel->getActiveSheet()->setCellValue($k . '1', $v[1]);
               }
               $i = $key + 2; //表格是从2开始的
               $objPHPExcel->getActiveSheet()->setCellValue($k . $i, $value[$v[0]]);
           }

       }
       header("Pragma: public");
       header("Expires: 0");
       header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
       header("Content-Type:application/force-download");
       header("Content-Type:application/vnd.ms-execl");
       header("Content-Type:application/octet-stream");
       header("Content-Type:application/download");;
       header('Content-Disposition:attachment;filename='.$title.'.xls');
       header("Content-Transfer-Encoding:binary");//        $objWriter->save($title.'.xls');
       $objWriter->save('php://output');
   }}

第三步,读取需要下载数据,和组合excel数据标题$field参数,直接调用第二步的方法。

   public function outExcelRecharge() {
       $where = "1=1";
       $data       = $dbEngin->field('transactions.*,u.name as uname, k.name as kname')->where($where)->order('id desc')->select();
       foreach ($data as $key => $value) {
           $data[$key]['price'] = number_format($data[$key]['price']/100,2);
           $data[$key]['uname'] = filterEmoji($value['uname']);
       }
       $field = array(
           'A' => array('id', 'ID'),
           'B' => array('user_id', '用户ID'),
           'C' => array('uname', '用户名称'),
           'D' => array('created', '时间'),
           'E' => array('order_id', '订单号'),
           'F' => array('price', '金额(元)'),
           'G' => array('coins', '充值金币数'),
           'H' => array('device_id', '设备ID'),
           'I' => array('ktv_id', 'ktvID'),
           'J' => array('kname', 'ktv名称'),
           'K' => array('status', '状态(paid:已付款,refunded:已退款,pending:处理中)')
       );
       $until = new UntilLogic();
       $until->phpExcelList($field, $data, '充值列表_' . date('Y-m-d'));
   }

以上就是比较常见也非常简单的phpexcle数据到出方式。


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
1条评论
波波alber1986 2018-05-29 10:14:00
这个我做过两个版本,分享给大家 TP3的http://www.sucaihuo.com/php/140.html TP5的http://www.sucaihuo.com/php/3279.html
1楼
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学