PHPExcel 表格导出数据_phpexcel 导出-程序员宅基地

技术标签: PHP  php  

PHPExcel开发文档

https://www.kancloud.cn/chunyu/php_basic_knowledge/1041088

1、控制器-平台订单-导出

  //功能:订单查询导出-导出
    //功能:平台订单-导出
    public function orderTLoad()
    {
    
        set_time_limit(0);
        //@ini_set('memory_limit','512M');
        $shopId = request()->param('shopId/d') ? request()->param('shopId/d') : 0;
        if ($shopId <= 0) errorMsg(400, '请选择店铺!');
        $isSync = request()->param('isSync/d') ? request()->param('isSync/d') : 0;
        $istatus = request()->param('istatus/d') ? request()->param('istatus/d') : 0;
        $datetime = request()->param('datetime/s') ? request()->param('datetime/s') : '';
        if (!$datetime) errorMsg(400, '请选择日期!');
        $where['o.companyId'] = $this->companyId;
        $where['o.deleted'] = 0;
        if ($shopId > 0) {
    
            $where['o.shopId'] = $shopId;
        }
        if ($isSync == 1 || $isSync == 2) {
    
            $where['o.isSync'] = $isSync - 1;
        }
        if ($istatus > 0) {
    
            switch ($istatus) {
    
                case 1:
                    $where['o.logisticsId'] = ['>', 0];
                    break;
                case 2:
                    $where['o.logisticsId'] = 0;
                    break;
                case 3:
                    $where['o.isBackLogis'] = 2;
                    break;
                case 4:
                    $where['o.isBackLogis'] = 3;
                    break;
                case 5:
                    $where['o.logisticsId'] = ['>', 0];
                    $where['o.isBackLogis'] = 0;
                    $where['s.isGrant'] = 1;
                    break;
                case 6:
                    $where['o.status'] = 2;
                    break;
            }
        }
        $owhere = '';
        if ($datetime) {
    
            $owhere = "o.createTime>'{
      $datetime} 00:00:00' and o.createTime<='{
      $datetime} 23:59:59'";
        }

        $list = OrderThird::alias('o')->join('shop s', 's.shopId=o.shopId', 'left')->join('plat_cate pc', 'pc.platCateId=s.platCateId', 'left')->join('logistics l', 'l.logisticsId=o.logisticsId', 'left')->join('order_third_goods og', 'og.torderId=o.torderId', 'left')->where($where)->where($owhere)->field('o.order_id,o.consignee,o.address,o.buyerRegNo,o.buyerName,o.mobile,o.buyerIdNumber,o.goodsValue,o.acturalPaid,o.discount,o.freight,o.taxTotal,o.insuredFee,o.logisticsCode,o.addTime,o.createTime,o.remark,s.shopName,pc.platCateName,l.logisticsName,og.sku_id,og.sku_name,og.price,og.qty')->order('o.torderId desc')->select();
        if (!$list) errorMsg(400, '没有符合条件的订单!');

        //导入表格文件
        vendor("phpexcel.PHPExcel");
        //实例化表格
        $objPHPExcel = new \PHPExcel();
        //生成表头
        $objPHPExcel->getProperties()
            ->setCreator("jason")
            ->setLastModifiedBy("jason")
            ->setTitle("orders")
            ->setSubject("Office 2007 csv")
            ->setDescription("orders")
            ->setKeywords("orders")
            ->setCategory("orders");
        // 设置行高
        $objPHPExcel->setActiveSheetIndex(0)->getDefaultRowDimension()->setRowHeight(24);
        $objPHPExcel->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", "购买人身份证")
            ->setCellValue("N1", "收件人姓名")
            ->setCellValue("O1", "收货人电话")
            ->setCellValue("P1", "收货地址")
            ->setCellValue("Q1", "快递公司")
            ->setCellValue("R1", "快递单号")
            ->setCellValue("S1", "商品编码")
            ->setCellValue("T1", "商品名称")
            ->setCellValue("U1", "商品数量")
            ->setCellValue("V1", "商品单价")
            ->setCellValue("W1", "下单时间")
            ->setCellValue("X1", "创建时间")
            ->setCellValue("Y1", "备注");
        foreach ($list as $key => $value) {
    
            $i = $key + 2;
            $j = $key + 1;
            $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValueExplicit("A" . $i, $j)
                ->setCellValueExplicit("B" . $i, $value['platCateName'])
                ->setCellValueExplicit("C" . $i, $value['shopName'])
                ->setCellValueExplicit("D" . $i, $value['order_id'])
                ->setCellValueExplicit("E" . $i, $value['goodsValue'])
                ->setCellValueExplicit("F" . $i, $value['discount'])
                ->setCellValueExplicit("G" . $i, $value['insuredFee'])
                ->setCellValueExplicit("H" . $i, $value['freight'])
                ->setCellValueExplicit("I" . $i, $value['insuredFee'])
                ->setCellValueExplicit("J" . $i, $value['taxTotal'])
                ->setCellValueExplicit("K" . $i, $value['acturalPaid'])
                ->setCellValueExplicit("L" . $i, $value['buyerRegNo'])
                ->setCellValueExplicit("M" . $i, $value['buyerName'])
                ->setCellValueExplicit("N" . $i, $value['buyerIdNumber'])
                ->setCellValueExplicit("O" . $i, $value['consignee'])
                ->setCellValueExplicit("P" . $i, $value['mobile'])
                ->setCellValueExplicit("Q" . $i, $value['address'])
                ->setCellValueExplicit("R" . $i, $value['logisticsName'])
                ->setCellValueExplicit("S" . $i, $value['logisticsCode'])
                ->setCellValueExplicit("T" . $i, $value['sku_id'])
                ->setCellValueExplicit("U" . $i, $value['sku_name'])
                ->setCellValueExplicit("V" . $i, $value['qty'])
                ->setCellValueExplicit("W" . $i, $value['addTime'])
                ->setCellValueExplicit("X" . $i, $value['createTime'])
                ->setCellValueExplicit("Y" . $i, $value['remark']);
        }
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('A')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('B')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('C')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('D')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('E')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('F')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('G')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('H')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('I')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('J')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('K')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('L')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('M')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('N')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('O')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('P')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('Q')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('R')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('S')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('T')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('U')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('V')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('W')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('X')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension('Y')->setAutoSize(true);
        $objPHPExcel->getActiveSheet(0)->getStyle('A1:Y1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
        $objPHPExcel->getActiveSheet(0)->getStyle('A1:Y1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
        $objPHPExcel->getActiveSheet(0)->getStyle('A1:Y1')->getFill()->getStartColor()->setARGB('FF00FF00');
        $objActSheet = $objPHPExcel->getActiveSheet(0);
        $objActSheet->setTitle("订单详情");
        $path = APP_PUBLIC . '/download/' . date('Ymd');
        if (!is_dir($path)) {
    
            mkdir($path, '0755');
        }
        $filename = date('YmdHis') . str_pad(rand(0, 999), 3, '0', STR_PAD_LEFT) . '.csv';
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="' . $filename . '.csv"');
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");
        $objWriter->save($path . '/' . $filename);
        $path = request()->domain() . '/public/download/' . date('Ymd') . '/' . $filename;
        //$path='http://www.localhost.com/Public/'.$filename;
        errorMsg(200, 'success', $path);
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42012939/article/details/125104752

智能推荐

Spring与MyBatis集成(XML方式和注解方式)_spring集成mybatis xml与注解-程序员宅基地

文章浏览阅读801次。Spring与MyBatis集成一、事务1. 事务的分类2. 为什么要使用声明式事务3. Spring是如何实现声明式事务的二、spring 和 mybatis 的集成1. 项目结构2. 导包1). spring2). mybatis3). mysql4). pagehelper5). log4j3. 创建db.properties4. 创建log4j.properties5. 通过MyBatis逆向工程生成User、UserMapper、UserMapper.xml1). User2). UserMapp_spring集成mybatis xml与注解

这11个AI大模型获国家批准正式上线!(含最全名单和下载地址)_商汤日日新下载-程序员宅基地

文章浏览阅读2.5k次。2023年7月7日,华为发布盘古大模型3.0.“不作诗、只做事”、“AI 重塑千行百业”、“AI for Industries ”华为的盘古大模型聚焦行业价值场景,围绕行业重塑、技术扎根、开放同飞三大方向,为行业客户提供服务。中国科学院自动化研究所“紫东太初”多模态大模型研究团队自成立以来,围绕人工智能前沿技术进行了不懈探索,成功研发全球首个千亿参数多模态大模型“紫东太初”,开拓性地实现了图像、文本、语音三个模态数据之间的“统一表示”与“相互生成”,理解和生成能力更接近人类,向通用人工智能迈出了重要一步。_商汤日日新下载

Easyui合并单元格 再进行编辑单元格 单元格所在的行错位 及自定义验证_easyui 验证单元格-程序员宅基地

文章浏览阅读1k次。$.extend($.fn.validatebox.defaults.rules, { PositiveNumber : {// 整数 validator:function(value,param){ return value >= 1; ..._easyui 验证单元格

Linux升级nginx版本_linux 升级nginx-程序员宅基地

文章浏览阅读2.2k次,点赞11次,收藏16次。处于漏洞修复目的服务器所用nginx是1.16.0版本扫出来存在安全隐患,需要我们升级到1.17.7以上。一般nginx默认在目录,这里我的nginx是自定义的路径安装在。_linux 升级nginx

波形发生器设计c语言文件,波形发生器设计方案.doc-程序员宅基地

文章浏览阅读938次。五邑大学单片机课程设计报告题 目:波形发生器设计院 系 信息学院专 业 电子信息工程学 号 3112001979学生姓名 陈梓聪指导教师 黄辉波形发生器设计摘要本文以STC89C51片机为核心设计了一个低频函数信号发生器。信号发生器采用数字波形合成技术,通过硬件电路和软件程相结合,可输出自定义波形,如正弦波、方波、三角波、梯形波及其他任意波形,波形的频率和幅度在一定范..._数字式波形发生器课程设计+csdn

5款十分小众的软件,知道的人不多但却很好用_小众软件 启动软件-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏26次。今天推荐5款十分小众的软件,知道的人不多,但是每个都是非常非常好用的,有兴趣的小伙伴可以自行搜索下载。_小众软件 启动软件

随便推点

【Docker】手把手教你使用Docker安装kafka【详细教程】_docker kafka-程序员宅基地

文章浏览阅读1.2w次,点赞22次,收藏88次。手把手教你使用Docker安装kafka_docker kafka

python模拟提交表单文件_如何用python 模拟表单提交,获取服务器的文件下载链接...-程序员宅基地

文章浏览阅读87次。下个报告,手动下载需要一个个填写提交,文件自动下载,这样操作对于多个对象都要提交一次表单非常麻烦,有没有什么办法模拟表单进行自动提交下载general内容:Request URL:http://www.hw.com.cn/hw-new/d...Request Method:POSTStatus Code:200 OKRemote Address:110.92.233.12:80response h..._python中用requests实现模拟在页面中勾选同意后再提交

[Intervention] Ignored attempt to cancel a touchmove event with cancelable=false, for example becaus_uview ignored attempt to cancel a touchmove event -程序员宅基地

文章浏览阅读526次。在vue项目中使用vue-awesome-swiper2.7.6的时候鼠标滑到最右边会报下面的错:[Intervention] Ignored attempt to cancel a touchmove event with cancelable=false, for example because scrolling is in progress and cannot be interrupted.解决办法:[Intervention] Ignored attempt to cancel a tou_uview ignored attempt to cancel a touchmove event with cancelable=false, for

C语言中for循环的使用详解及注意点_c语言for循环语句用法-程序员宅基地

文章浏览阅读5.5k次,点赞3次,收藏25次。C语言中for循环的使用详解及注意点_c语言for循环语句用法

Mule与其它web应用服务器的区别_mule服务器-程序员宅基地

文章浏览阅读2.9k次。跟JBoss、Tomcat或其它web应用服务器相比,Mule有何不同?虽然他们有一些重要的相同点,不同点可以归结为你想达到的目标是什么。某些种类的应用对于Mule来说比较容易去编写、部署和管理,其它种类的应用可能对于web应用服务器来说比较容易编写、部署和管理。首先来看看相同点:它们都允许你同时运行多个应用。它们都提供应用容器。换句话说,两者都提供一个应用可以运行的环境,扮演一个_mule服务器

emq java_MQTT研究之EMQ:【eclipse的paho之java客户端使用注意事项】-程序员宅基地

文章浏览阅读296次。这里,简单记录一下自己在最近项目中遇到的paho的心得,这里也涵盖EMQX的问题。1. cleanSession这个标识,是确保client和server之间是否持久化状态的一个标志,不管是client还是server重启还是连接断掉。下面是来自paho客户端源码的注释。Sets whether the client and server should remember state across ..._due to message queue too long

推荐文章

热门文章

相关标签