首先下载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

最新文章

  1. 微信小程序首次官方分享的纪要
  2. Win下必备利器之Cmder
  3. Visual Studio 2015上安装Entity Framework Power Tools
  4. BZOJ 2716 [Violet 3]天使玩偶 ——KD-Tree
  5. Java语言的编写规范
  6. PHP投票系统
  7. Selenium 中 cssSelector定位
  8. Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
  9. ADF_ADF Faces系列2_使用JSF开发基于Ajax的用户界面:ADF Faces富客户端组件简介(Part2)
  10. ReactNative学习实践--Navigator实践
  11. Mono Compatibility
  12. Windows下Node.js开发环境搭建
  13. Qt 技巧:设置在 debug 路径下直接运行可执行文件
  14. 团队作业7——第二次项目冲刺(Beta版本12.05-12.07)
  15. Building real-time dashboard applications with Apache Flink, Elasticsearch, and Kibana
  16. System.Threading.Tasks.Task 引起的 IIS 应用池崩溃
  17. windows系统相关命令及问题排查实践
  18. SVN、Git设置提交时忽略的文件
  19. Notification通知栏的使用
  20. 微信小程序从子页面退回父页面时的数据传递 wx.navigateBack()

热门文章

  1. PostgreSQL--with子句
  2. Python中的虚拟环境的使用
  3. Python之pandas读取mysql中文乱码问题
  4. 011-数据结构-树形结构-B+树[mysql应用]、B*树
  5. 【Linux】宝塔服务器磁盘爆满处理方法
  6. LinQ中合并、连接、相交、与非查询
  7. Asp.net SignalR 让实时通讯变得如此简单
  8. 最新 识装java校招面经 (含整理过的面试题大全)
  9. OpenSSL 创建自签名证书
  10. openstack-keystone外组件命令行