zoukankan      html  css  js  c++  java
  • TP5使用phpoffice phpexcel包操作excel(导出)

    安装composer(window版本)
    安装composer(MAC版本)
    安装composer(Linux版本)

    在PhpStorm配置
    导出excel

    1、使用composer安装phpoffice/phpexcel
    phpexcel资源

    下载好之后,解压,再php-excelvendorphpoffice目录下,不建议使用,因为这是通过composer下载的 ,对其他(比如:composer.json等,安装包也有这个,一套的)的文件有所关联

    composer require phpoffice/phpexcel

    2、公共代码(我放到API位置了,各自根据自己代码结构编写)

        <?php
        /**
         * 操作excel
         * 导入、导出
         * Created by PhpStorm.
         * Date: 2019/5/13
         * Time: 16:12
         */
        namespace appapicontroller;
         
        use thinkController;
        use thinkRequest;
         
        class Excel extends Controller
        {
            /**
             * 导出
             * @param string $fileName
             * @param array $headArr
             * @param array $data
             * @throws PHPExcel_Exception
             * @throws PHPExcel_Reader_Exception
             * @throws PHPExcel_Writer_Exception
             */
            function excelExport($fileName = '', $headArr = [], $data = []) {
         
                $fileName .= "-" . date("YmdHi", Request::instance()->time()) . ".xls";
         
                $objPHPExcel = new PHPExcel();
         
                $objPHPExcel->getProperties();
         
                $key = ord("A"); // 设置表头
         
                foreach ($headArr as $v) {
         
                    $colum = chr($key);
         
                    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
         
                    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
         
                    $key += 1;
         
                }
         
                $column = 2;
         
                $objActSheet = $objPHPExcel->getActiveSheet();
         
                foreach ($data as $key => $rows) { // 行写入
         
                    $span = ord("A");
         
                    foreach ($rows as $keyName => $value) { // 列写入
         
                        $objActSheet->setCellValue(chr($span) . $column, $value);
         
                        $span++;
         
                    }
         
                    $column++;
         
                }
         
                $fileName = iconv("utf-8", "gb2312", $fileName); // 重命名表
         
                $objPHPExcel->setActiveSheetIndex(0); // 设置活动单指数到第一个表,所以Excel打开这是第一个表
         
                header('Content-Type: application/vnd.ms-excel');
         
                header("Content-Disposition: attachment;filename=$fileName");
         
                header('Cache-Control: max-age=0');
         
                $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
         
                $objWriter->save('php://output'); // 文件通过浏览器下载
         
                exit();
         
            }
        }
    

    3、控制层,处理数据调用

        <?php
        /**
         * 会员设置控制器
         * Created by PhpStorm.
         * Date: 2019/4/25
         * Time: 9:45
         */
         
        namespace appadmincontroller;
         
        use appapicontrollerExcel;
        use appcommoncontrollerManage;
        use thinkRequest;
         
        class MemberShip extends Manage
        {
         
            private $memberShipM;
         
            /**
             * 预加载model
             * Category constructor.
             * @param Request|null $request
             */
            public function __construct(Request $request = null)
            {
                parent::__construct($request);
                $this->memberShipM = new appcommonmodelMemberShip();
            }
         
         
         
            /**
             * 导出会员列表
             */
            public function exportMember()
            {
                $excel = new Excel();
                $name='会员';
                $header=['序号','会员名称','价格','购买人数'];
                $newdata = [];
                $data=$this->memberShipM->getList();
                foreach ($data as $key=>$value){
                    $newdata[$key]['id'] = $value['id'];
                    $newdata[$key]['name'] = $value['name'];
                    $newdata[$key]['price'] = $value['price'];
                    $newdata[$key]['buy_num'] = $value['buy_num'];
                }
         
                $excel->excelExport($name,$header,$newdata);
            }
         
        }
    

    5、导出成功
    ————————————————
    版权声明:本文为CSDN博主「SUPER_童」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_40354683/article/details/90177141

  • 相关阅读:
    二维数组
    数组经典排序
    数组复制方法
    循环
    方法和包
    switch

    注释
    面向对象优点
    有参
  • 原文地址:https://www.cnblogs.com/haima/p/11825697.html
Copyright © 2011-2022 走看看