首先下载PHPExcel类。网上很多,自行下载。

我下载的跟composer下载的不太一样。我下载的是

 
下载存放目录.jpg

而composer下载的是:

 
composer下载.jpg

本篇使用的是第一种。所以下载请下载对应的。

前端代码:

<form action="ADMIN_MAIN/Excel/out" enctype="multipart/form-data" method="post">
<input type="submit" value="导出">
</form>

创建Excel控制器和out方法:

首先use两个类,否则会报错:

use PHPExcel_IOFactory;
use PHPExcel;

然后引入vendor里面的PHPExcel类:

vendor("PHPExcel.PHPExcel.PHPExcel");
vendor("PHPExcel.PHPExcel.Writer.Excel5");
vendor("PHPExcel.PHPExcel.Writer.Excel2007");
vendor("PHPExcel.PHPExcel.IOFactory");

一般引用vendor里面的类或者插件用vendor();
里面加载的就是vendor文件,然后想要加载哪个文件,直接写就行,中间的“.”相当于文件路径的“/”。
例如加载excel5这个文件:

 
加载.jpg

最后不写php。这样就加载进来了。
接下来实例化类时候,一定要加“\”。

 
控制器.jpg

实例化完了之后就先把数据库里面的数据查出来:

$sql = db('sys_user')->select();

有了数据,就可以设置Excel表的表头信息了:

 /*--------------设置表头信息------------------*/
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'ID编号')
->setCellValue('B1', '用户名')
->setCellValue('C1', '手机号');

这里的A1,B1是A列第一行。以此类推,就是表头了,想要哪些信息就写什么,只要数据库有,接下来可以对的上就行。

接下来就是查到的信息,对号入座到表格中:

 /*--------------开始从数据库提取信息插入Excel表中------------------*/

        $i=2;  //定义一个i变量,目的是在循环输出数据是控制行数
$count = count($sql); //计算有多少条数据
for ($i = 2; $i <= $count+1; $i++) {
$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $sql[$i-2][uid]);
$objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $sql[$i-2][user_name]);
$objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $sql[$i-2][user_tel]);

$i = 2,因为第一行是表头,所以写到表格时候只能从第二行开始写。
然后for循环。不知道的,我也无能为力。

接下来就是设置导入表的名称等内容了

 /*--------------下面是设置其他信息------------------*/

        $objPHPExcel->getActiveSheet()->setTitle('user');      //设置sheet的名称
$objPHPExcel->setActiveSheetIndex(0); //设置sheet的起始位置
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //通过PHPExcel_IOFactory的写函数将上面数据写出来
$PHPWriter = \PHPExcel_IOFactory::createWriter( $objPHPExcel,"Excel2007");
header('Content-Disposition: attachment;filename="用户信息.xlsx"');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件

到这里,数据导出已经完成

 
下载完成.jpg
 
内容.jpg

原文:https://www.jianshu.com/p/6684cfb61a99

thinkPHP5.0 使用PHPExcel导出Excel文件的更多相关文章

  1. 应用phpexcel导出excel文件后打不开的问题解决方法

    应用phpexcel导出excel文件后打不开,提示“文件格式或文件扩展名无效,请确定文件未损坏,并且文件扩展名与文件的格式匹配”. 试了以下方法: 1.首先区分文件格式是2003,还是2007. 参 ...

  2. PHPExcel导出excel文件

    今天园子刚开,先来个货顶下,后续园丁qing我会再慢慢种园子的,希望大家多来园子逛逛. PHPExcel导出excel文件,先说下重要的参数要记住的东西 impUser() 导入方法 exportEx ...

  3. Yii框架中使用PHPExcel导出Excel文件

    最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法: 1.首先在config\main.php中添加对PHPExcel的引用,我的方式是这样: 1 2 3 4 ...

  4. 使用phpExcel导出excel文件

    function export($log_list_export) { require "../include/phpexcel/PHPExcel.php"; require &q ...

  5. 使用PHPExcel实现Excel文件的导入和导出(模板导出)

    在之前有写过一篇文章讲述了使用PHP快速生成excel表格文件并下载,这种方式生成Excel文件,生成速度很快,但是有缺点是:1.单纯的生成Excel文件,生成的文件没有样式,单元格属性(填充色,宽度 ...

  6. phpexcel 导出excel无法打开,提示文件格式或文件名无效,文件损毁,解决办法

    使用过很多次phpexcel了,有时需要保存文件到磁盘,有时需要浏览器弹出下载.保存到磁盘一半不会出现问题,关键是浏览器弹出保存,经常会发生导出的excel文件无法打开,提示文件格式或文件名无效,文件 ...

  7. 前端必读3.0:如何在 Angular 中使用SpreadJS实现导入和导出 Excel 文件

    在之前的文章中,我们为大家分别详细介绍了在JavaScript.React中使用SpreadJS导入和导出Excel文件的方法,作为带给广大前端开发者的"三部曲",本文我们将为大家 ...

  8. PHP从数据库导出EXCEL文件

    参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-ty ...

  9. PHP导出excel文件

    现在教教你如何导入excel文件: 在我的文件储存里面有一个com文件夹的,将其解压放在ThinkPHP/Library/文件夹里面,然后就是写控制器啦!去调用这个插件: <?php names ...

随机推荐

  1. Sparrow-WiFi:一款Linux平台下的图形化WiFi及蓝牙分析工具

    工具概述 Sparrow-wifi本质上一款针对下一代2.4GHz和5GHz的WiFi频谱感知工具,它不仅提供了GUI图形化用户界面,而且功能更加全面,可以代替类似inSSIDer和linssid之类 ...

  2. XmlIgnore的解释和使用

    XmlIgnore是一个自定义属性,用来指明在序列化时是否序列化一个属性.如下面的例子: public class Group { public string GroupName; [XmlIgnor ...

  3. Python3教程—很经典可以快速上手

    原文地址:https://www.runoob.com/python3/python3-tutorial.html Python 3 教程 Python 的 3.0 版本,常被称为 Python 30 ...

  4. jq select change下拉框选项变化判断选中值,添加(attr)或移除(removeAttr)一个或多个属性

    select change下拉框选项变化判断选中值,添加(attr)或移除(removeAttr)一个或多个属性 $("#IsRecommend").change(function ...

  5. 【转】23 个安卓重难点突破,带你吃透 Service 知识点「长达 1W+ 字」

    前言 学 Android 有一段时间了,想必不少人也和我一样,平时经常东学西凑,感觉知识点有些凌乱难成体系.所以趁着这几天忙里偷闲,把学的东西归纳下,捋捋思路. 这篇文章主要针对 Service 相关 ...

  6. 搭建EOS全节点并接入主网

    #EOS编译安装 #!/bin/bash #install.eos.sh #EOS 安装 #从github克隆主网代码 cd /opt git clone https://github.com/EOS ...

  7. [转]eclipse中explorer显示方式

    原文地址:https://www.cnblogs.com/gne-hwz/p/7590451.html 不知道是不是上面的描述.做个记录 project explorer 项目资源管理器 这个要打开代 ...

  8. precommit那些事儿

    一.使用背景 我们有将 lint 命令添加进 npm scripts 中,但是很多人在提交代码时都会忘记或者没有习惯去执行检查,结果就是导致不符合规范的代码被上传到远端代码仓库. 二.问题分析 我们可 ...

  9. LODOP问答部分链接

    点击链接进入相关简短问答博文: 问答大全 纸张打印机 注册 table表格 clodop测试地址 字体 行间距.字间距 clodop回调函数 SET_PRINT_STYLEA 页眉页脚 超文本 条码 ...

  10. [LeetCode] 274. H-Index H指数

    Given an array of citations (each citation is a non-negative integer) of a researcher, write a funct ...