PHPExcel导出各种方法总结

2023-11-17

PHPExcel导出

方法一、

https://blog.csdn.net/u014236259/article/details/60601767

   
 public function ExportExcelOrder($data, $name)
 {
        vendor('PHPExcel.PHPExcel');     //引入PHPExcel类
        $objPHPExcel = new \PHPExcel();  //实例化  相当于在桌面新建一个excel
        // 表头
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'id')
            ->setCellValue('B1', '订单编号')
            ->setCellValue('C1', '收货人姓名')
            ->setCellValue('D1', '收货人电话')
            ->setCellValue('E1', '地址')
            ->setCellValue('F1', '省份')
            ->setCellValue('G1', '返现金额')
            ->setCellValue('H1', '品牌名称');
        //设置内容水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        // 设置个表格宽度
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(24);
        //设置单元格自动宽度
        $objPHPExcel->getActiveSheet()->getColumnDimension("A")->setAutoSize(true);
        // 内容
        for ($i = 0, $len = count($data); $i < $len; $i++) {
            $objPHPExcel->getActiveSheet(0)->setCellValue('A' . ($i + 2), $data[$i]['part_order_id']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('B' . ($i + 2), $data[$i]['order_id']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('C' . ($i + 2), $data[$i]['accept_name']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('D' . ($i + 2), $data[$i]['phone']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('E' . ($i + 2), $data[$i]['address']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('F' . ($i + 2), $data[$i]['province_id']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('G' . ($i + 2), $data[$i]['cashback']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('H' . ($i + 2), $data[$i]['brand_name']);
            //设置内容水平居中
            $objPHPExcel->setActiveSheetIndex(0)->getStyle($i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        }
        $objPHPExcel->getActiveSheet()->setTitle('User');
        $objPHPExcel->setActiveSheetIndex(0);
        ob_end_clean();//清楚缓存区,解决乱码问题
        header("Pragma:public");
        header("Content-Type:application/x-msexecl;name=\"{$name}.xlsx\"");
        header("Content-Disposition:inline;filename=\"{$name}.xlsx\"");
        $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
        $objWriter->save('php://output');
        exit;
    }

     //导出excel
vendor('PHPExcel.PHPExcel');     //引入PHPExcel类
        $objPHPExcel = new \PHPExcel();  //实例化  相当于在桌面新建一个excel
        // 表头
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'id')
            ->setCellValue('B1', '订单编号')
            ->setCellValue('C1', '收货人姓名')
            ->setCellValue('D1', '收货人电话')
            ->setCellValue('E1', '地址')
            ->setCellValue('F1', '省份')
            ->setCellValue('G1', '返现金额')
            ->setCellValue('H1', '品牌名称');
        //设置内容水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        // 设置个表格宽度
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(24);
        //设置单元格自动宽度
        $objPHPExcel->getActiveSheet()->getColumnDimension("A")->setAutoSize(true);
        // 内容
        for ($i = 0, $len = count($data); $i < $len; $i++) {
            $objPHPExcel->getActiveSheet(0)->setCellValue('A' . ($i + 2), $data[$i]['part_order_id']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('B' . ($i + 2), $data[$i]['order_id']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('C' . ($i + 2), $data[$i]['accept_name']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('D' . ($i + 2), $data[$i]['phone']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('E' . ($i + 2), $data[$i]['address']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('F' . ($i + 2), $data[$i]['province_id']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('G' . ($i + 2), $data[$i]['cashback']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('H' . ($i + 2), $data[$i]['brand_name']);
            //设置内容水平居中
            $objPHPExcel->setActiveSheetIndex(0)->getStyle($i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        }
        $objPHPExcel->getActiveSheet()->setTitle('User');
        $objPHPExcel->setActiveSheetIndex(0);
        ob_end_clean();//清楚缓存区,解决乱码问题
        header("Pragma:public");
        header("Content-Type:application/x-msexecl;name=\"{$name}.xlsx\"");
        header("Content-Disposition:inline;filename=\"{$name}.xlsx\"");
        $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
        $objWriter->save('php://output');
        exit;
    }

     //导出excel
    public function push()
    {
        $data = M()->table("part_order")->where(['user_id'=>1583])->select();
        $fileName = "导出订单时间".date('Ymd');
        $this->ExportExcelOrder($data, $fileName);
    }


 

方法二、

 public function export($title,$data,$fileName)
    {
        vendor('PHPExcel.PHPExcel');
        $objPHPExcel = new \PHPExcel();
        //横向单元格标识
        $cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H');
        $objPHPExcel->getActiveSheet(0)->setTitle('我的订单');   //设置sheet名称
        $_row = 1;   //设置纵向单元格标识
        if($title){
            $_cnt = count($title);
            //合并单元格  设置字体加粗 字号
            $objPHPExcel->getActiveSheet(0)->mergeCells('A'.$_row.':'.$cellName[$_cnt-1].$_row)->getStyle()
                ->getFont()->setBold(true)->setSize(13);
            //字体水平居中
            $objPHPExcel->getActiveSheet(0)->getStyle('A'.$_row.':'.$cellName[$_cnt-1].$_row)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            //设置合并后的单元格内容
            $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$_row, '订单导出:'.date('Y-m-d H:i:s'));

            $_row++;
            $i = 0;
            foreach($title AS $v){
                $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension($cellName[$i].$_row)->setAutoSize(true);//设置单元格自动宽度
                $objPHPExcel->setActiveSheetIndex(0)->getStyle($cellName[$i].$_row)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);//单个单元格居左
                //设置列标题
                $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].$_row, $v);
                $i++;
            }
            $_row++;
        }
        //填写数据
        if($data){
            $i = 0;
            foreach($data AS $_v){
                $j = 0;
                foreach($_v AS $_cell){
                    $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i+$_row), $_cell);
                    $j++;
                }
                $i++;
            }
        }
        //文件名处理
        if(!$fileName){
            $fileName = uniqid(time(),true);
        }
        header("Pragma:public");
        header("Content-Type:application/x-msexecl;name=\"{$fileName}.xlsx\"");
        header("Content-Disposition:inline;filename=\"{$fileName}.xlsx\"");
        $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
        $objWriter->save('php://output');
        exit;
    }

      //导出excel
    public function pull()
    {
        $title = ['id','订单编号','收货人姓名','收货人电话','地址','省份','返现金额','品牌名称'];
        $data = M()->table("part_order")
            ->field("part_order_id,order_id,accept_name,accept_phone,address,province_id,cashback,brand_name")
            ->where(['user_id'=>1583])->select();
        $fileName = "导出订单时间".date('Ymd');
        $this->export($title,$data,$fileName);
    }

 

 

 

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

PHPExcel导出各种方法总结 的相关文章

  • 将两个或多个 xls 文件合并为工作表 PHPExcel

    我一直在到处寻找如何使用两个现有文件执行此操作 看起来所有文档都是关于创建新文件的 我想获取其中一个文件并将第二个文件作为新工作表添加到其中 然后将其保存到服务器 我一直在尝试这样的做法 但没有成功 file test xls file2
  • 以 PHP 计算利率

    我正在尝试计算给定初始贷款金额 还款次数和还款金额的贷款利息 我似乎无法使用基本公式获得足够接近的数字 因此我一直在尝试使用牛顿拉夫森方法 可以在此处看到该方法的使用 http www efunda com formulae finance
  • 使用 PHPExcel 在 1 个单元格内设置不同的字体颜色

    我想使用 PHPExcel 让文本在 1 个单元格内具有不同的颜色 但我找不到有关它的信息 是否可以 我相信它可以从 xls 中完成 但是可以在 PHPExcel 中使用编程来完成吗 是的 可以使用 Rich Text 对象在 PHPExc
  • 使用 php excel reader 读取 xls 日期值

    我正在使用 PHPExcel 读取 Excel 文件中具有 Mar 13 等值的日期单元格 但它返回 41791 等整数值 请问 我需要做什么才能确保日期读取正确 Excel 将日期存储为序列化时间戳 自 1900 年 1 月 1 日以来的
  • 即使设置 date_default_timezone_set 之后,PHPExcel 也会得到错误的时区

    我在用着http phpexcel codeplex com在我的一个项目中 我遇到了一个问题 我想在单元格内写入 time 值 我正在这样做 function writeTimeLine objActiveSheet lineNumber
  • PHPExcel 返回损坏的二进制文件

    I want to write a reference xls file and retrieve the result When I tested with a single file it works but when the refe
  • PHPEXCEL如何获取单元格值,即使有特殊字符

    当我使用函数 getValue 获取单元格值时 如果单元格包含特殊字符 它会返回 false 是否有任何解决方案来获取内容 即使包含非 UTF 8 字符 我希望在调用 getValue 函数之前解析它们 我将不胜感激任何形式的帮助 objP
  • PHPExcel 获取相对于给定列的列名

    使用 PHPExcel 是否可以获取位于左侧或右侧 X 列的列的名称 例如 给定列 BZ 我想返回列名称 CB 或 BX 向右或向左 2 个 Thanks PHPExcel 中已经内置了一些函数来帮助您执行此操作 adjustment 2
  • Zend2 控制器中的 PHPExcel

    我正在尝试让 PHPExcel 与 Zend2 一起使用 实际上它正在工作 但不符合我的预期 我可以写入文件 但不能在不保存的情况下下载 我找到了一些例子 你只需做这样的事情 objPHPExcel header Content Type
  • PHPExcel CSV 到 XLSX

    我在将文件从 CSV 转换为 XLSX 格式时遇到问题 索引 php h1 Convert CSV to XLSX h1
  • 通过php提取excel中动态变化的数据

    我有一个打开的 Excel 工作表 另一个程序通过 DDE 不断更新该工作表 我希望有一个 php 脚本来访问此 Excel 工作表中的一些数据 我尝试过使用 PHPExcel 但似乎我无法让我所做的更改 例如通过 setCellValue
  • 有没有办法检测Excel文件是使用PHPExcel在Windows还是Mac上生成的?

    我正在使用 PHPExcel 生成一个 xls 模板 用户可以下载该模板并用他想要的数据填充它 众所周知 Excel以数字格式保存日期 我正在使用此函数来转换数据并返回时间戳 public static function excelToTi
  • 使用 PHPExcel 下载 xls 文件时出现损坏

    在我当前的项目中 我使用 PHPExcel 1 7 8 将数据导出到 Excel 按照建议 我在项目中成功配置了它 并成功生成了 xls 文件并存储了它 但是当我尝试下载 xls 文件时 我损坏了 xls 文件 而没有收到任何错误消息 我有
  • PHPExcel setAutoSize 用于合并单元格

    没有合并的代码 objPHPExcel new PHPExcel sheet objPHPExcel gt getActiveSheet sheet gt setCellValueByColumnAndRow 0 1 test test t
  • PHPExcel图表不反转垂直轴

    我正在使用 PHPExcel 以便使用条形图导出 Excel 图表 我可以将默认布局的图表导出为下图 但是 我想将轴布局放在图表顶部并反转 Y 轴 如下图所示 我怎样才能做到这一点 研究代码后我发现它是possible反转轴 yAxis n
  • PhpSpreadsheet 正在损坏文件

    我正在使用 PhpSpreadsheet 修改现有文件并将其发送到浏览器 但是每次下载文件 excel 都会出现以下错误 我们发现 filename xlsx 中的某些内容存在问题 您希望我们尽力恢复吗 如果您信任此工作簿的来源 请单击 是
  • 使用 PHP 从 Excel 文件 (xlsx) 中提取图像

    如何使用PHPExcel从excel文件中读取图像并将图像保存在服务器中并显示它们 该文件的扩展名是 xlsx My code objPHPExcel PHPExcel IOFactory load path foreach objPHPE
  • PHPExcel 日期格式

    我从 MS SQL 服务器获取 2012 08 09 00 00 00 不带引号 格式的输出 但是 当我将其写入 Excel 文件时 我无法以日期格式写入它以在 Excel 上进行 dd mmm yyyy 格式 因此 我尝试以 date 2
  • 使用 PHPExcel 将 Excel 中的单元格按行和列合并在一起

    我需要使用以下命令按行合并 Excel xlsx 中的单元格并再次按列合并PHPExcel http phpexcel codeplex com downloads get 212184 我尝试了以下方法 sheet gt mergeCel
  • PHPExcel:自动下载并打开Excel文件

    我已经成功创建并保存了一个 Excel 文件 Rename the file fileName URL MODEL case caseNO xlsx Write the file objWriter PHPExcel IOFactory c

随机推荐

  • 配置msf连接postgresql数据库

    BackTrack 5 R3版本的Metasploit在每次的升级后总会出现奇奇怪怪的错误 主要是Ruby的库出错 网上找了一些解决的办法 但每次更新后又会出错 蛋碎 解决方法 BackTrack 5中默认自动开启端口7337 1 查看Po
  • Zabbix监控MariaDB服务

    文章目录 1 概述监控MariaDB服务主机 2 安装MariaDB服务和配置MariaDB 3 配置Zabbix的userparameter mysql conf 文件模板 4 在Web配置模板 5 在server进行压力测试mysql服
  • svg实现文本的垂直居中对齐样式

    项目中用到表格内画折线趋势图 本人使用的svg绘制简单折线 没有数据的单元格显示文字 为了不影响表格的宽度自适应 就想到在svg上写文字 于是就有了在svg上对文字样式进行垂直居中的需求 上代码
  • Linux教程:在虚拟机中如何配置Linux系统网络环境 ?

    对于很多初学Linux 的同学 大多选择使用虚拟机来展开学习 可以方便的做实验 修改 测试 不必害怕出问题 可以随便折腾 大不了换一个虚拟机 原来的系统不受任何影响 但由于不是实体pc机 使用难免受限 如果配置不好 后期开发必受其累 比如
  • C++Primer(4-8章)

    第四章 表达式 求值顺序 C 中没有明确规定大多数运算符的求值顺序 因此我们要避免 改变了某个运算对象的值 又在表达式其他地方使用这个运算对象 这种情况出现 赋值运算满足右结合律 在输出表达式中使用条件运算符 条件运算符的优先级非常低 因此
  • java修改AD域用户密码使用SSL连接方式

    正常情况下 JAVA修改AD域用户属性 只能修改一些普通属性 如果要修改AD域用户密码和userAccountControl属性就得使用SSL连接的方式修改 SSL连接的方式需要操作以下步骤 1 安装AD域证书服务 2 证书颁发机构中设置以
  • 【C语言】结构体中的函数指针

    目录 一 函数指针是什么 二 结构体中的函数指针 一 函数指针是什么 函数指针是指向函数的指针变量 通常我们说的指针变量是指向一个整型 字符型或数组等变量 而函数指针是指向函数 函数指针可以像一般函数一样 用于调用函数 传递参数 正确形式
  • 2.【Python】分类算法—Logistic Regression

    2 Python 分类算法 Logistic Regression 文章目录 2 Python 分类算法 Logistic Regression 前言 一 Logistic Regression模型 1 线性可分和线性不可分 2 Logis
  • 二.全局定位--开源定位框架livox-relocalization实录数据集测试

    相关博客 二十五 SLAM中Mapping和Localization区别和思考 goldqiu的博客 CSDN博客 二十五 SLAM中Mapping和Localization区别和思考 goldqiu的博客 CSDN博客 基于固态雷达的全局
  • 【Flink系列】- RocksDB增量模式checkpoint大小持续增长的问题及解决

    背景 Flink版本 1 13 5 一个使用FlinkSQL开发的生产线上任务 使用Tumble Window做聚和统计 并且配置table exec state ttl为7200000 设置checkpoint周期为5分钟 使用rocks
  • cr2格式缩略图不显示_苹果HEIC格式照片如何快速在windows电脑上查看

    相信很多人一定遇到这样的一个情况 出去旅游玩了一阵 辛辛苦苦回来将iphone拍的照片拷贝到windows电脑 windows7系统 上 想寻找一些心仪的照片 却发现是如下的样子 OMG 欺负我买不起苹果电脑是吧 我拍的是啥 什么也看不到
  • Linux —— XShell6远程操控开机、重启和用户登录注销

    1 关机 重启命令 shutdown h now 表示立即关机 shutdown h 1 表示一分钟后关机 shutdown r now 表示立即重启 halt 直接使用 等价于关机 reboot 就是重启系统 sync 把内存的数据同步到
  • 会议OA项目----我的审批

    前言 上一篇博客我将我的会议的送审和会议排座这两个功能完成 送审之后就到了审批阶段 那么这次做的就是 我的审批 一 实现思路 根据产品原型图 见产品原型图 我的审批界面与我的会议界面大同小异 那么我们可以调用之前的写好的SQL语句 只不过将
  • 文件上传/下载接口(超简单的教程来了)

    前言 文件上传 下载接口与普通接口类似 但是有细微的区别 如果需要发送文件到服务器 例如 上传文档 图片 视频等 就需要发送二进制数据 上传文件一般使用的都是 Content Type multipart form data 数据类型 可以
  • java懒加载注解_一分钟学习Spring注解之懒加载@Lazy

    先声明 本篇文章非常简单属于一分钟学会使用系列 不深入讲解原理 如果要学习源码 可以看小编Spring源码解析系列 什么是懒加载 懒加载就是不使用不加载 使用的时候才去加载 Spring默认不是懒加载 而是启动加载 就在Spring上下文启
  • rac集群节点级联重启故障分析

    author skate time 2012 07 16 无意中发现以前处理故障写的一篇文章 记录下来以备查找 rac集群节点级联重启故障分析 环境 os linux db rac10g ocfs2 rac数据库环境实际包含两个集群 一个是
  • linux socket非阻塞之connect 函数

    1 connect原型 include
  • 联想E480安装MacOS苹果系统记录

    联想E480安装MacOS记录 联想E480安装黑苹果 自己有用IPad和Iphone 但Mac OS却没怎接触过 于是萌生了转用Mac OS的想法 用自用的联想E480装个黑果 为了方便软件上的互补 双系统优先 网上搜搜转转没发现有E48
  • 代码随想录算法训练营第三天 | 203.移除链表元素、707.设计链表、206.反转链表

    目录 知识点 链表 结点定义 单链表的初始化 判断一个链表是否为空 单链表的销毁 清空单链表 求链表表长 取单链表中第i个元素 按值查找 插入第i个结点 删除第i个结点 移除列表元素 没有采用虚拟头结点的方法 采用虚拟头结点的方法 设计链表
  • PHPExcel导出各种方法总结

    PHPExcel导出 方法一 https blog csdn net u014236259 article details 60601767 public function ExportExcelOrder data name vendor