之前做了个项目需要导出Excel文件 ,我在网上查了许多资料,最后终于搞定了 ,现在把代码贴到下面

先导入库文件:将文件phpoffice放在根目录的vendor下。获取文件点击:链接:https://pan.baidu.com/s/1G426c2sQKiJ453HZSHpeIQ 提取码:oj6f

接下来先说下没有图片的方法:

    1. 先在application下面的command.php中添加如下的代码:    

 function excelExport($fileName = '', $headArr = [], $data = []) {

     $fileName .= "_" . date("Y_m_d", time()) . "_".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();
}

  然后在你的控制器中添加如下的代码:

  

     public function excel()
{ $name='定制订单列表';
$header=['序号','客户','日期','品类','价格','订单属性','客户来源','新老客户','顾问','所属店铺'];
/*需要哪张表的数据就查询哪张表的数据*/
$list = DB::name('order')select();
$str = array();
foreach ($list as $k => $v) {
/*对应的数据库信息*/
$str[] = ['字段1,'字段2','字段4','字段5','字段6','字段7','字段8','字段9','字段10','字段11'];
}
$data=$str;
excelExport($name,$header,$data);
}

  然后调用方法execl就可以导出你想要的数据了

TP5整合的导出Excel中没有图片和包含图片两种方法的更多相关文章

  1. Python 使用 xlwings 往 excel中写入一列数据的两种方法

    1.准备一个二维列表,然后再range后面不指定任何选项,可以输出该二维列表中数据在一列中显示,如下代码: # -*- coding:utf-8 -*- import xlwings as xw li ...

  2. JAVA读取Excel中内容(HSSF和Workbook两种方法)

    内容添加,以前是用的HSSF,前几天帮同学写一个统计表用了Workbook,现在码一下. ---新内容(Workbook)--- 同学要统计一个xls表格,让表1里面的某一列内容对表2里面的每列进行匹 ...

  3. Java 获取*.properties配置文件中的内容 ,常见的两种方法

    import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...

  4. 在Java Web程序中使用监听器可以通过以下两种方法

    之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...

  5. js如何实现动态的在表格中添加和删除行?(两种方法)

    js如何实现动态的在表格中添加和删除行?(两种方法) 一.总结 1.table元素有属性和一些方法(js使用) 方法一:添加可通过在table的innerHTML属性中添加tr和td来实现 tab.i ...

  6. QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)

    QT中获取选中的radioButton的两种方法   QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioBu ...

  7. 原生JS—实现图片循环切换的两种方法

    今天我们主要讲讲如何使用原生JS实现图片的循环切换的方法.多余的话我们就不多说了,我们一个一个开始讲吧. 1  原生JS实现图片循环切换 -- 方法一 在上栗子之前我们先简单介绍一下所用的一些知识点. ...

  8. ant中调用外部ant任务的两种方法

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  9. PHP中对用户身份认证实现两种方法

    用户在设计和维护站点的时候,经常需要限制对某些重要文件或信息的访问.通常,我们可以采用内置于WEB服务器的基于HTTP协议的用户身份验证机制.     当访问者浏览受保护页面时,客户端浏览器会弹出对话 ...

随机推荐

  1. 批量重命名脚本(Python)

    便携的批处理脚本,代码如下: import os import sys def rename(): path=input("请输入路径(例如D:/picture):") name= ...

  2. JavaScript基础1225

    JavaScript函数 1.函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. tip:JavaScript对大小写敏感.关键词function必须是小写,并且必须以与函数名称相同的大小写 ...

  3. Java读源码之CountDownLatch

    前言 相信大家都挺熟悉 CountDownLatch 的,顾名思义就是一个栅栏,其主要作用是多线程环境下,让多个线程在栅栏门口等待,所有线程到齐后,栅栏打开程序继续执行. 案例 用一个最简单的案例引出 ...

  4. spark中的pair rdd,看这一篇就够了

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是spark专题的第四篇文章,我们一起来看下Pair RDD. 定义 在之前的文章当中,我们已经熟悉了RDD的相关概念,也了解了RDD基 ...

  5. Docker 搭建 ELK 集群步骤

    前言 本篇文章主要介绍在两台机器上使用 Docker 搭建 ELK. 正文 环境 CentOS 7.7 系统 Docker version 19.03.8 docker-compose version ...

  6. 关于go的通信通道channel——chan的一些问题

    go版本 1.8 chan类型的声明,有以下几种: var c chan int c := make(chan int) //slice.map.chan都可以通过用make来初始化,其中map.ch ...

  7. BATJ高级Java面试题分享:JVM+Redis+Kafka +数据库+设计模式

    话不多说,直接上面试题,来看一下你还欠缺多少? Mysql 与 Oracle 相比, Mysql 有什么优势? 简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别? ...

  8. curl的$post传递多维数组

    php curl传数组的话只能传一维数组,如果想传多维数组:两个方法: 1.转换成json在传输 2. //通过curl模拟post的请求: function SendDataByCurl($url, ...

  9. 二, 连接Oracle 二

    一,sqlplus操作 文件操作命令 1.start和@ 说明: 运行sql脚本 案例: sql>@ home/a.sql或是sql>start home/a.sql 2.edit 说明: ...

  10. Spring5参考指南:Environment

    文章目录 Profiles PropertySource 使用@PropertySource Spring的Environment接口有两个关键的作用:1. Profile, 2.properties ...