PHPExcel 表格导出数据

2023-11-20

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);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHPExcel 表格导出数据 的相关文章

  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28
  • 如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

    有谁知道如何使用配置文件 ebextensions 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展 我使用的是 64 位 Amazon Linux 2017 03 v2 4 0 运行 PHP 7 0 1
  • 如何更改codeception phpbrowser/mink超时

    我正在尝试使用代码接收创建测试 以检查页面在高负载的情况下是否正常工作 不幸的是 如果页面负载非常高并且测试开始 我会收到这样的错误 Codeception Exception ModuleConfig Codeception Util M
  • PHP:将多字节字符串(单词)拆分为单独的字符

    尝试使用 mb split 将这个字符串 主楼怎么走 分割成单独的字符 我需要一个数组 但没有成功 有什么建议吗 谢谢你 例如 尝试使用带有 u 选项的正则表达式 chars preg split u string 1 PREG SPLIT
  • php中的$$是什么意思? [复制]

    这个问题在这里已经有答案了 变量后面的两个背对背 是什么意思 像这样 id 我在哪里可以找到更多相关信息 谢谢 In PHP 意味着您将给至少一名维护程序员带来多年的痛苦和折磨 请注意 您最终可能会成为维护程序员 它是一个可变变量 想象一下
  • 无法在jspdf中加载多个图像

    我正在尝试加载动态生成的多个图像 我想将这些图像转换为 PDF 格式 HTML 代码如下
  • PHP - 警告:strpos() [function.strpos]: 空分隔符是什么意思?

    警告 strpos function strpos 空分隔符是什么意思 我有这个 if strpos 039 text false text str replace 039 text 猜测一下 我会说 text是一个空字符串 感谢马克指出细
  • Facebook iFrame 应用程序 - 摆脱垂直滚动条?

    我已经转换了一个 Facebook 应用程序 http apps facebook com video preferans 从 FBML 到 iFrame 使用 PHP SDK 现在显示的垂直滚动条与我之前显示的内容数量相同 一个徽标 一个
  • 纯基于网络的版本控制系统

    我的托管服务当前不允许在其服务器上运行 允许 svn git cvs 我真的希望能够将我的开发计算机上的当前源代码与我的生产服务器 同步 我正在寻找一个纯php python ruby版本控制系统 不只是一个client对于版本控制系统 不
  • 从 php 到 JavaScript 的数组

    我正在尝试使用 json 将数组列表从 php 传输到 javascript 但它不起作用 JS ajax url getProfilePhotos php type post post or get method data if you
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • Laravel 登录后重定向回来

    登录后如何重定向返回页面 在 Laravel 5 2 中 认证控制器 protected redirectTo 重定向用户
  • PHP 脚本不断执行 mmap/munmap

    我的 PHP 脚本包含一个循环 它只不过是回显和取消引用指针 如 tab othertab i gt 中的内容 直到昨天 这个脚本开始变得非常慢 比以前慢了 50 倍 之前 它一直运行良好 使用 strace 后 我发现 90 的情况下 脚
  • 当我使用 session_start() 时,Xampp 7.0.1 Apache 崩溃

    当我在 PHP 中使用 session start 启动会话时 我的 Apache 服务器停止工作 我正在使用 Windows 版 Xampp 7 0 1 我的配置文件如下所示 即使我把它放在文件的第一行 它也不起作用 有人知道如何解决这个
  • PHP switch case 在 case 中存在多个值

    我有一个变量保存值 每周 每月 季度 和 年度 还有另一个变量保存值从 1 到 10 switch var2 case 1 var3 Weekly break case 2 var3 Weekly break case 3 var3 Mon
  • 设置大型电子邮件通知系统有哪些方法?

    我的公司有一个用 PHP 构建的网站 我们使用内置的 PHP 电子邮件功能每天向订阅者发送数千封电子邮件 这是一个糟糕的主意 它堵塞了我们的服务器 并且需要几个小时才能完成整个批次 现在我已经研究过像 MailChimp 这样的群发邮件服务
  • if/else 简写来定义变量

    我很难理解 if else 的 php 简写是如何描述的here https stackoverflow com questions 20233207 php if shorthand and echo in one line possib
  • 使用 ImageMagick (PHP) 将 2 个图像并排合并为 1 个图像

    我认为这是一件容易的事 我有 2 张图片 JPG 我希望它们合并成一张图片 其中 2 张图片并排 所以我有图片 A 和图片 B 我想要图片 AB 并排 两个图像具有相同的宽度和高度 在本例中 宽度 200px 高度 300px 但是第二个图
  • 如何将变量插入 PHP 数组?

    我在网上查了一些答案 但都不是很准确 我希望能够做到这一点 id result id info array id Example echo info 0 这有可能吗 您需要的是 不推荐 info array id Example varia

随机推荐

  • #css# 【四】如何使用hover,实现父对子的样式改变?

    css 如何使用hover 实现父对子的样式改变 思路及做法 鼠标移动到父盒子的时候 里面所有的子盒子的样式都发生变化的 只需要直接在hover后面加上空格 并且加上子盒子的类名 里面再写其他样式 父盒子的类名 hover 子盒子的类名 这
  • iOS系统网络抓包方法

    原文地址 http www cnblogs com ydhliphonedev archive 2011 10 27 2226935 html 在进行iOS开发过程中 经常会遇到各种各样的网络访问问题 以前苦于没有抓包工具 很多网络问题解决
  • 【python-opencv】硬币检测

    使用 python3 8 x opencv 硬币检测 问题描述 设计思路1 使用简单特征识别 具体操作 部分代码 设计思路2 模板匹配 源码 模板制作 完整代码 问题描述 使用图像处理技术 从照片中识别硬币的个数 并判断总价值 设计思路1
  • ESP32开发阶段启用 Secure Boot 与 Flash encryption

    Secure Boot 与 Flash encryption详情 请参考 https blog csdn net espressif article details 79362094 1 开发环境 AT版本 2 4 0 0 发布 IDF 与
  • git忽略文件地址

    git忽略文件地址 Objective C gitignore gitignore
  • String和StringBuffer的常见用法

    链接 https www nowcoder com questionTerminal fe6b651b66ae47d7acce78ffdd9a96c7 answerType 1 f discussion来源 牛客网 String的用法 ja
  • dubbo配置提供者和消费者

    1 找到对应的文件 提供者 消费者 参考dubbo官网 http dubbo apache org zh cn docs user quick start html
  • 【NLP】第 6 章 :微调预训练模型

    到目前为止 我们已经了解了如何使用包含预训练模型的huggingface API 来创建简单的应用程序 如果您可以从头开始并仅使用您自己的数据来训练您自己的模型 那不是很棒吗 如果您没有大量空闲时间或计算资源可供使用 那么使用迁移学习 是最
  • 连接池

    总结 1 连接池 java对外提供了连接的接口 连接池的存在就省去了每次创建和释放连接 2 连接池的连接条件 1 将commons pool 1 5 6 jar的jar包引进java项目下的lib文件夹 3 用连接池对象代替dao 层的Co
  • TP6.0 自定义命令创建类文件

    一 修改框架核心扩展包 1 新增指令配置项 2 创建逻辑层类文件模板 3 创建 Logic php 文件 4 执行命令 创建逻辑层类文件 二 不用修改框架源码 推荐 1 创建一个自定义命令类文件 以逻辑层类文件为例 2 复制创建模型类的命令
  • 解决 npm或pnpm : 无法加载文件 C:\Users\bts\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本

    vscode 使用 npm 或 pnpm打开网页时出现此问题 解决方法 点击左下角开始 找到Windows PowerShell 点击右键找到更多 找到以管理员身份运行 输入命令 set ExecutionPolicy RemoteSign
  • 使用禅道 api 添加用户完整流程与分析

    在使用禅道系统时 有时为了方便 需要与其他系统对接 如其他系统添加用户后可以直接同步到禅道系统 而不是在禅道系统重新添加一遍用户 禅道系统提供了二次开发的api 但是里面的内容并不详细 故笔者写这篇文章进行记录 这里先以 postman进行
  • STM32与ESP8266-MQTT固件的应用

    本文以Clion作为编译器 STM32F407作为芯片 通过串口以AT指令与ESP8266 01S进行通信 让其连接到腾讯云物联网平台 一 ESP8266 01S ESP8266 01S原本固件是不支持MQTT的 因此需要在安信可官网去下载
  • mysql union保持原有查询的排序

    摘要 mysql中对union之后的结果进行排序比较简单 但业务中也会遇到需要保持各个union结果集自身的排序情况 本文将介绍一种想要保持union前各个查询结果集的排序规则不变的处理方式 为各个结果集编排独立排序 规则描述与数据准备 数
  • Linux设备驱动入门

    Linux驱动配置 什么是驱动程序 驱动程序是应用层和硬件设备之间的一个软件层 它向应用层提供了一组标准化的调用接口 同时完全隐藏设备的工作细节 无操作系统时的设备驱动 有操作系统时候的设备驱动 有了操作系统之后 设备驱动反而变得更加复杂了
  • 黑白二维数组,判断两个二维数组之间的相似率

    include
  • 排序算法---希尔排序---详解&&代码

    希尔排序 希尔排序 从整体宏观上有序逐步细节到局部的有序 希尔排序是一种改进版的插入排序 普通的插入排序算法中 是从第2个节点开始 依次插入到有序序列中 这种做法虽然 一次成形 但研究发现时间效率上这么做并不划算 希尔排序的时间复杂度为O
  • Maven 父子POM文件 相同依赖不同版本的问题

    Maven 父子POM文件 相同依赖不同版本的问题 默认用父一级的版本 而且子POM文件的版本处会有黄色Warn 解决 增加
  • qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in

    在运行mmdetection的时候发现qt5里面缺了啥 qt qpa plugin Could not load the Qt platform plugin xcb in 卸载了好多Qt5 重新安装 都没有用 尝试1 sudo gedit
  • PHPExcel 表格导出数据

    PHPExcel开发文档 https www kancloud cn chunyu php basic knowledge 1041088 1 控制器 平台订单 导出 功能 订单查询导出 导出 功能 平台订单 导出 public funct