专栏首页桑先生的专栏ThinkPHP5.1composer安装和使用PHPExcel

ThinkPHP5.1composer安装和使用PHPExcel

这几天在整PHP的导出.相对5.0版本.5.1废弃了vendor和import助手函数.通过composer自动加载完成引入.废话少说.直接抱起键盘就是干 ?

第一步.通过composer安装phpexcel

在项目根目录运行 composer require phpoffice/phpexcel

第二步.因为通过composer加载的第三方类,所以直接在头部引入一下就可以了.

use PHPExcel_IOFactory;
use PHPExcel;
$excel = new \PHPExcel();
dump($excel);

这样就可以将类引入了.

导出效果如下

这里也是封装了一个方法.直接调用下就可以.需要改一个表头和数据库字段

public function clientExcel($data = [],$name = 'excel')
    {
        $excel = new \PHPExcel(); //引用phpexcel
        iconv('UTF-8', 'gb2312', $name); //针对中文名转码
        $header = ['订单编号', '订单状态', '客户名字', '订单名字', '创建时间','订单备注','开料尺寸','印件色数','印件色别','印刷方式','成品尺寸','印刷板数','千印数量']; //表头,名称可自定义
        $excel->setActiveSheetIndex(0);
        $excel->getActiveSheet()->setTitle($name); //设置表名
        $excel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(18);
        $excel->getActiveSheet()->getColumnDimension('B')->setWidth(80);

        $letter = ['A', 'B', 'C', 'D', 'E','F','G','H','I','J','K','L','M'];//列坐标

        //设置表头
        $excel->setActiveSheetIndex(0)
            ->setCellValue('A1', '订单编号')
            ->setCellValue('B1', '订单状态')
            ->setCellValue('C1', '客户名字')
            ->setCellValue('D1', '订单名字')
            ->setCellValue('E1', '创建时间')
            ->setCellValue('F1', '订单备注')
            ->setCellValue('G1', '开料尺寸')
            ->setCellValue('H1', '印件色数')
            ->setCellValue('I1', '印件色别')
            ->setCellValue('J1', '印刷方式')
            ->setCellValue('K1', '成品尺寸')
            ->setCellValue('L1', '印刷板数')
            ->setCellValue('M1', '千印数量');
        
        //写入数据
        foreach ($data as $k => $v) {
            //从第二行开始写入数据(第一行为表头)
            //$excel->getActiveSheet()->setCellValue('A'.($k+2),$v['gid']);
            $excel->getActiveSheet()->setCellValue('A' . ($k + 2), $v['order_id']."\t");
            $excel->getActiveSheet()->setCellValue('B' . ($k + 2), $v['order_status']);
            $excel->getActiveSheet()->setCellValue('C' . ($k + 2), $v['name']);
            $excel->getActiveSheet()->setCellValue('D' . ($k + 2), $v['order_name']);
            $excel->getActiveSheet()->setCellValue('E' . ($k + 2), $v['create_time']);
            $excel->getActiveSheet()->setCellValue('F' . ($k + 2), $v['remark']);
            $excel->getActiveSheet()->setCellValue('G' . ($k + 2), $v['poper_size']);
            $excel->getActiveSheet()->setCellValue('H' . ($k + 2), $v['color_num']);
            $excel->getActiveSheet()->setCellValue('I' . ($k + 2), $v['color_type']);
            $excel->getActiveSheet()->setCellValue('J' . ($k + 2), $v['print_type']);
            $excel->getActiveSheet()->setCellValue('K' . ($k + 2), $v['final_dimension']);
            $excel->getActiveSheet()->setCellValue('L' . ($k + 2), $v['print_num']);
            $excel->getActiveSheet()->setCellValue('M' . ($k + 2), $v['prints_num']);
        }

        //设置单元格边框
        $excel->getActiveSheet()->getStyle("A1:E" . (count($data) + 1))->getBorders()->getAllBorders()->setBorderStyle();

        ob_end_clean();
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="' . $name . '.xls"');
        header('Cache-Control: max-age=0');


        $res_excel = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
        $res_excel->save('php://output');

    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP开发之将jpng的图片转换为png格式

    上午遇到了一个需求.就是将小程序生成的码拼接个文字.小程序生成二维码也好.小程序码也罢.这些之前都有接触过.三下五除二就生成了.接下来的工作也是需要进行文字的拼...

    桑先生
  • 使用git上传项目到Github

    其次需要使用Git这个管理工具.没有的小伙伴可以下载一个.直接傻瓜式安装就可以了.

    桑先生
  • PHP之压缩图片

    这几天写项目也是遇到了需要手机上传图片.时代在进步.所以图片体积也越来越大.考虑到服务器的感受.所以需要将图片压缩下.

    桑先生
  • 03 Linear Regression

    Introduction:         线性回归可能是统计学,机器学习和科学中最重要的算法之一。 它是最常用的算法之一,了解如何实现它和其各种avors是非...

    MachineLP
  • Youzer:一款针对活动目录环境的伪造用户生成器

    Youzer是一款针对活动目录环境的伪造用户生成器,Youzer的目标就是创建一个包含大量信息的活动目录环境,该工具使用了Python3代码库“faker”来生...

    FB客服
  • 用python怎样识别验证码?(含源码)

    验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越来越严峻。本文介绍了一套...

    IT派
  • 字符型图片验证码识别完整过程及Python实现

    验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越来越严峻。本文介绍了一...

    用户1170933
  • 关于MFC与OpenGL结合绘图区域用鼠标来控制图形的移动总结

    原文链接:https://www.cnblogs.com/DOMLX/p/11773171.html

    徐飞机
  • 开发一套直播系统源码以及直播平台搭建该怎么做?

    如今,直播已经成为了人们生活中必不可少的产品了,不仅仅通过实时直播带来的娱乐和欢乐,还有更重要的是它带来的实时信息分享,由此直播也带来了非常大的商业价值和潜力。...

    布谷安妮
  • FF下修改美化文件域(input type=file)的样式

    有兄弟问我修改美化文件域(input type=file)在FF下的样式,暂时没看兼容.也没美化.等到了上海安定好了再好好修改下 <!DOCTYPE html ...

    练小习

扫码关注云+社区

领取腾讯云代金券