PHPExcel导出

2023-10-30

PHPExcel导出

PHPExcel导出之前只做过简单的,这一次这个有些复杂的,包括单元格合并、字体的样式、边框线、单元格的背景色、单元格内容的自动换行。

代码呈上

		//引入PHPExcel
        import("Org.Util.PHPExcel");
        import("Org.Util.PHPExcel.Writer.Excel5");
        import("Org.Util.PHPExcel.IOFactory");
        
        // 设置PHPExcel对象
        $objPHPExcel = new \PHPExcel();
        $objProps = $objPHPExcel->getProperties();

        // 设置文档属性
          $objPHPExcel->getProperties()->setCreator("qingdan")
          ->setLastModifiedBy("qingdan")
          ->setTitle("Office 2007 XLSX Test Document")
          ->setSubject("Office 2007 XLSX Test Document")
          ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
          ->setKeywords("office 2007 openxml php")
          ->setCategory("Test result file");

        //生成列名,A-Z  AA-AZ  BA-BZ  CA-CT
        $col_arr=range("A","Z");

        // 设置行高度
        $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(25);
        $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(35);    //第二行行高

        //设置单元格宽度
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25);
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10);
        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(15);

        // 合并
        $objPHPExcel->getActiveSheet()->mergeCells('A1:L1');
        $objPHPExcel->getActiveSheet()->mergeCells('A4:B4');
        $objPHPExcel->getActiveSheet()->mergeCells('C4:D4');
        $objPHPExcel->getActiveSheet()->mergeCells('E4:F4');
        $objPHPExcel->getActiveSheet()->mergeCells('H4:L4');
        $objPHPExcel->getActiveSheet()->mergeCells('B3:L3');
        $objPHPExcel->getActiveSheet()->mergeCells('D2:F2');
        $objPHPExcel->getActiveSheet()->mergeCells('H2:L2');
        //合计
        $count1 = $count + 1;
        $objPHPExcel->getActiveSheet()->mergeCells("A$count1:B$count1");
        //页脚
        $foot1 = $count1+1;
        $foot3 = $count1+3;
        $objPHPExcel->getActiveSheet()->mergeCells("A$foot1:L$foot3");

        //默认居中
        $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

        // 字体和样式
        $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(24);      //字体大小
        $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('A2')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('C2')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('G2')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('A3')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('A4')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('G4')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('A5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('B5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('C5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('D5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('E5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('F5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('G5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('H5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('I5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('J5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('K5')->getFont()->setBold(true);
        $objPHPExcel->getActiveSheet()->getStyle('L5')->getFont()->setBold(true);

        //边框线
        $styleThinBlackBorderOutline = array(
            'borders' => array (
                'allborders' => array (                               //allborders  表示全部线框
                    'style' => \PHPExcel_Style_Border::BORDER_THIN,   //设置border样式
                    'color' => array ('argb' => 'FF000000'),          //设置border颜色
                ),
            ),
        );

        $objPHPExcel->getActiveSheet()->getStyle( "A1:L"."$foot3")->applyFromArray($styleThinBlackBorderOutline);

        //设置填充的样式和背景色
        $objPHPExcel->getActiveSheet()->getStyle( 'A2:L4')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
        $objPHPExcel->getActiveSheet()->getStyle( 'A2:L4')->getFill()->getStartColor()->setARGB('0092D050');

         $key = 0;
         foreach($col_arr as $v){
            //注意,不能少了。将列数字转换为字母\
            $colum = \PHPExcel_Cell::stringFromColumnIndex($key);
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("A1",'*******************');

            /*表头及列出信息*/
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("A2",'订单编号');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("C2",'配送时间');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("G2",'订购食堂');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("A3",'收货地址');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("A4",'下单人员及联系方式');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("G4",'配送单位');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("A5",'品类编码');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("B5",'菜品');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("C5",'规格');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("D5",'单位');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("E5",'加工要求');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("F5",'订购数');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("G5",'配送数');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("H5",'签收数');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("I5",'单价');                                      $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("J5",'装箱单位');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("K5",'金额/元');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("L5",'装箱数');
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("A$count1",'合计');

            //页脚内容
             $str = "送货人:                      验收人:                         核对人:                       结算部门(章):  ". chr(10) . chr(10) ."备 注:    ". chr(10) . chr(10) ."第一联:******             第二联:******              第三联:******             第四联:*********       ";

            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("A$foot1",$str);
            //设置单元格自动换行属性
             $objPHPExcel->getActiveSheet()->getStyle("A$foot1")->getAlignment()->setWrapText(true);
            //左对齐
             $objPHPExcel->getActiveSheet()->getStyle("A$foot1")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);
             $objPHPExcel->getActiveSheet()->getStyle("A$foot1")->getFont()->setSize(10);      //字体大小
             $objPHPExcel->getActiveSheet()->getStyle("A$foot1")->getFont()->setBold(true);      //字体加粗
            //表头信息
             $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("B2"," "."******");   //订单号
             $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("D2","******");   //订单配送时间
             $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("H2","******");   //订购的食堂
             $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("H4","******");   //配送单位
             $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("B3","******");   //收货地址
             $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("C4","******");   //下单人员
             $objPHPExcel->setActiveSheetIndex(0) ->setCellValue("E4","******");   //联系方式
            $key += 1;
            }

                $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(false);

                //赋值
            $column = 6; //从第六行写入数据 第五行之前是表头
            $objActSheet = $objPHPExcel->getActiveSheet();
            foreach($order_datas as $key => $rows){ //行写入
                $span = ord("A");
                foreach ($rows as $keyName => $value) {
                    $j = chr($span);
                    if ($keyName != 'order_id_list') {
                        $objActSheet->setCellValue($j .''. $column, "\t".$value);
                        $span++;
                    } else {
                        $objActSheet->setCellValue($j .''.$column, "\t".$value);
                        $span++;
                    }
                }
                $column++;
            }

            $fileName = iconv("utf-8", "gb2312", $fileName);
            $objPHPExcel->setActiveSheetIndex(0);
            ob_end_clean();
            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;

长数字前要拼个空格让其成为字符串,否则会用科学计数法表示。

效果图
在这里插入图片描述

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

PHPExcel导出 的相关文章

  • phpexcel - 将其与 Excel 模板一起使用(图表丢失)

    我尝试过使用phpexcel用我自己的模板文件 phpexcel 加载文件并将数据写入某些单元格 A2 A3 A4 例如 然后打开包含新数据的输出文件 我的模板文件内置了图表 我想要 phpexcel 做的就是填充单元格中的值并且不要触摸图
  • phpexcel下载

    你好 我是 phpexcel 的新手 我想知道是否有某种方法将我创建的 Excel 发送给客户端下载而不将其保存在我的服务器上或在他下载后立即将其删除 我正在尝试在页面上创建一个 导出按钮 该按钮将为用户提供一个 弹出窗口 其中包含他想要我
  • 使用 PHPExcel 在 1 个单元格内设置不同的字体颜色

    我想使用 PHPExcel 让文本在 1 个单元格内具有不同的颜色 但我找不到有关它的信息 是否可以 我相信它可以从 xls 中完成 但是可以在 PHPExcel 中使用编程来完成吗 是的 可以使用 Rich Text 对象在 PHPExc
  • 在 PHPExcel 中按列和行获取单元格作为字符串

    我正在尝试将可能带有尾随零的单元格读取为字符串而不是数字 它会去掉前导零 单元格由整数列 行读取 如下所示 而不是像这样的列字符串answer has 初始代码 instReader reader gt load this gt file
  • 来自样式对象的 PHPExcel 特定单元格格式

    我在项目中使用 PHPExcel 需要设置 Excel 工作表单元格的样式 我所做的是创建一个 PHPExcel 样式对象 如下所示 style red text new PHPExcel Style 然后 我使用此样式的设置函数来填充对象
  • PHPExcel:数据验证不适用于 .xls 格式

    我有一个包含两张表的 Excel 文件 工作表 List 将显示的项目列表Worksheet工作表作为列表项 请看下面的图片 我想使用生成这个PHPExcel图书馆 我已经尝试过 但没有得到预期的结果 请参阅我的下面的代码 objPHPEx
  • PhpExcel中获取单元格背景颜色

    我在我的项目中使用Excel5 我已经尝试过以下代码 objPHPExcel gt getActiveSheet gt getStyle A1 gt getFill gt getStartColor gt getARGB and objPH
  • Excel 工作表在条件格式后损坏

    我正在使用 phpexcel 生成 Excel 工作表 当使用条件格式 搜索文本或其一部分 时 在尝试打开生成的工作表时收到验证错误 与数字完美配合 与文本配合则较差 这是我的代码 conditional formatting objCon
  • phpexcel动态添加列

    mysqli new mysqli localhost root wolly if mysqli gt connect errno printf Connect failed s n mysqli gt connect error exit
  • 通过php提取excel中动态变化的数据

    我有一个打开的 Excel 工作表 另一个程序通过 DDE 不断更新该工作表 我希望有一个 php 脚本来访问此 Excel 工作表中的一些数据 我尝试过使用 PHPExcel 但似乎我无法让我所做的更改 例如通过 setCellValue
  • 致命错误:找不到类“PHPExcel_Shared_String”

    我已将 PHPExcel 用于我的 codeigniter 应用程序 它在本地主机中运行良好 但是当我将其托管到服务器时 出现以下错误 致命错误 在 xx xx xx 中找不到类 PHPExcel Shared String Third p
  • 使用 PHPExcel 下载 xls 文件时出现损坏

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

    我创建了一个 Excel 电子表格 在第二列中我有类似的值0 11 23 and 2 03 33 价值数千行 我使用 PHP 将格式设置为 sheet gt getStyle colRange gt getNumberFormat gt s
  • 如何使用 PHPSpreadsheet 在 Excel 上添加新行

    您好 我是这个名为 PHPSpreadsheet 的库的新手 我尝试阅读它的文档 但我无法理解它 我想在existingExcel 文件和 这是我到目前为止所拥有的
  • Autoloader.php 第 34 行 phpExcel 发生致命错误

    我想使用 phpExcel 但运行脚本时出现此错误 Fatal error Uncaught exception PHPExcel Exception with message Multibyte function overloading
  • 在 Excel5.php 中找不到类“PHPExcel”

    我在 PHPExcel 中收到以下错误 Fatal error Class PHPExcel not found in PHPExcel Reader Excel5 php on line 587 这很奇怪 因为我在网上搜索时没有遇到过它
  • PHP excel - 数据循环?

    我有一个数据数组的数组 所以基本格式是 sheet array array a1 data b1 data c1 data d1 data array a2 data b2 data c2 data d2 data array a3 dat
  • 在 PHPExcel 中复制样式和数据

    我想将某个范围的所有数据和样式复制到其他单元格 例如我想从 A4 I15 复制 然后完全粘贴我想要从 A16 复制的内容和样式 我该怎么做 这就是我要复制的内容 我知道只复制数据而不复制样式 并使用以下代码执行此操作 cellValues
  • php_zip 在 php 5.3.5 中不存在

    我正在使用 PHPExcel 要求之一是我需要启用 php zip 如果您需要 PHPExcel 来处理 xlsx 或 ods 文件 您将需要 邮政编码扩展名 我正在使用 PHP v5 3 5 并在我的php ini文件中 我有以下几行 e
  • 如何在phpexcel中设置自动高度?

    我在用phpexcel http phpexcel codeplex com 使用PHP生成Excel文档 问题是 如何使用phpexcel制作自动高度行 非常感谢 excel gt getActiveSheet gt getRowDime

随机推荐

  • 《Linux运维实战:Centos7.6一键离线部署mysql5.7.29集群》

    文章目录 一 部署背景 三 部署工具 三 部署演示 总结 整理不易 如果对你有帮助 可否点赞关注一下 一 部署背景 由于业务系统的特殊性 我们需要面向不通的客户安装我们的业务系统 而作为基础组件中的mysql针对不同的客户环境需要多次部署
  • Android 多选按钮Button

    一 先上效果图 二 准备阶段 资源文件 可根据项目需要调整样式 大小和颜色等 在res文件夹下创建以下资源文件 根据根标签选择Root Element 1 bg btn no select xml
  • 【数据对比】Parasoft Jtest如何提高Java测试ROI,加速软件交付!

    Parasoft Jtest通过提供一套工具来加速Java软件开发 以保证您的软件可靠 安全和可维护 从而最大限度地提高质量并最大限度地降低业务风险 经广泛证明 Parasoft Jtest是一个可以提高开发团队生产力和软件质量方法的集成解
  • 使用jvisualvm的jstatd方式远程监控Java程序

    使用Java自带的jvisualvm调试Java程序 可以查看CPU 内存 类及线程等信息 还可以进行Dump 无疑是一个利器 由于客户端是Windows 服务端是Linux 并且是最小安装的Linux 没有图形界面 因此需要进行远程调试
  • vue循环如何动态加载本地图片

    显示效果 代码 html
  • Excel中利用OFFSET函数解决很多个分块的一次性转置问题(非纯手动)

    今天遇到一个问题 需要将Excel中的一门课的平时成绩根据每个同学的作业次数进行转置排列 原始EXCEL表中内容如下 上表每个同学对应一个学号 该学号同学的作业和分数相应已知 现在为了统计方便 我要得到如下表的效果 因为学生人数众多 所有不
  • 【100%通过率 】【华为OD机试c++/java

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 祖国西北部有一片大片荒地 其中零星的分布着一些湖泊 保护区 矿区 整体上常年光照良好 但是也有一些地区光照不太好 某电力公司希望在这里建设多个光
  • Qt动态库调用

    在开发过程中调用第三方的动态库应该是不可避免的 调用DLL的方式也不算少 可以通过Win32 API 直接调用 Qt的API等诸多方式进行调用 这里着重介绍一下Qt自带的API调用DLL的方法 以调用DLLTest dll中返回值为bool
  • phpstorm的一些方便开发的操作

    1 php的xdebug插件 方便调试 1 1首先要确定自己的php版本 通过phpinfo 来查看 在页面上查看phpinfo的信息 复制其源码页面的所有信息 1 2 到https xdebug org 获取插件 1 3点击以下链接进行p
  • *.ui界面文件对应的ui_*.h文件的作用

    研究 ui界面文件对应的ui h文件的作用 ui h 是在对 ui 文件编译后生成的一个文件 ui h 会出现在编译后的目录下 或与 ui 同目录 与项目的 shadow build 编译设置有关 查看 ui h 文件的内容 发现它主要做了
  • selenium报错解决

    selenium报错解决 报错原因如下 selenium common exceptions ElementNotvisibleException Message element not interactable session info
  • C-const与指针

    const int p 不可以对 p 再次进行赋值 但可以对p进行再次赋值 p 6 p int const p 不可以对p再次进行操作 但可以对 p 再次进行操作 p 6 p const int const p 既不可以对p再次进行操作 也
  • 面试八股文(c++)

    C 1 多态 虚函数 纯虚函数的作用 多态 一个东西有多种形式 不同的对象 在收到相同的信息时产生不同的行为 好处 1 应用程序不必为每个派生类编写功能调用 只需要对抽象基类进行处理即可 大大提高程序的可复用性 2 派生类的功能可以被基类的
  • ip 地址与mac 地址的理解。软件如何识别用户?如何欺骗软件?修改mac地址的方法。windows 10文件夹权限问题!

    当你看到这篇文章的题目时 也许会想 究竟其围绕的主题是什么 答案是 我也不知道 某些时候无题杂谈也许更符合现实意义 在我胡说八道之前请再允许我说一些废话哈 不想看的时候可以略过的 之前了解 TeamViewer 的破解工具 结果没有通过审核
  • 【北交所周报】北证指数周内涨幅一度超7%,刷新历史单日涨幅;力王股份上市首日涨超100%;北交所现开市以来首个自然人“举牌”...

    上周 9月4日 9月8日 北交所个股整体走强 六成个股上涨 北证指数上涨1 81 最高触及863 63点 最低报811 06点 9月8日收盘报817 02点 ITValue 上周 9月4日 9月8日 北证指数上涨1 81 最高触及863 6
  • 【java】Static解读和public static void main(String[] args)详细分析

    首先问一个问题 public static void main String args 代码代表了什么含义 以及思考为什么java程序一开始就会进入main 函数 其实c c 也是如此 后面一个问题有static的基础就非常容易 后一个问题
  • Silverlight 1.1正式更名为Silverlight 2.0

    2007年11月30日 10 18 24 详情请参看下面两篇Blog http weblogs asp net scottgu archive 2007 11 29 net web product roadmap asp net silve
  • vscode快速生成标准的html代码

    Vsocde中 再新建html页面时 可以输入html 5然后按Tab或回车即可生成html模板 html 5
  • html5 webgl pyhon,WebGL基础

    WebGL坐标系 就像任何其他的3D系统 在WebGL中Z轴表示深x y和z轴 在WebGL的坐标被限制为 1 1 1 和 1 1 1 它意味着 如果你考虑该屏幕上投影的WebGL图形为立方体 则立方体的一个角将是 1 1 1 和相对的角为
  • PHPExcel导出

    PHPExcel导出 PHPExcel导出之前只做过简单的 这一次这个有些复杂的 包括单元格合并 字体的样式 边框线 单元格的背景色 单元格内容的自动换行 代码呈上 引入PHPExcel import Org Util PHPExcel i