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