Thinkphp5/tp5框架excel导出-ink文件
今天分享下后台常见功能之一键导出、生成excel表格问题,使用PHPExcel扩展实现功能,下面具体说下是如何实现的。
不要仰望别人,自己亦是风景
一、开发环境
开发环境:本地环境(win、wamp)
开框架:thinkphp5.0版本
二、准备工作
1、本地开发环境
2、一个适合自己的编辑器
3、composer
4、数据文件
三、实现
1、使用composer安装thinkphp5框架、phpexcel扩展
在目录中执行如下命令:
tp框架安装:composer create-project topthink/think=5.0.* tp5 --prefer-dist
phpexcel扩展安装:composer require phpoffice/phpexcel
2、代码实现
//批量导出数据
public function demo(){
$ResultInfo = db('User')->field('id,phone,addtime,nick,photo,push,email,wx,qq')->select();
// 清空(擦除)缓冲区并关闭输出缓冲
ob_end_clean();
//创建对象
$excel = new \PHPExcel();
$excel->getActiveSheet()->setTitle('投诉列表');
// 设置单元格高度
// 所有单元格默认高度
$excel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(25);
// 第一行的默认高度
$excel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);
// 垂直居中
$excel->getActiveSheet()->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
// 设置水平居中
$excel->getActiveSheet()->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//Excel表格式
$letter = array('A','B','C','D','E','F','F','G','H',);
//设置表头
$tableheader = array('序号','手机号','插入时间','姓名','头像','发帖权限','邮箱','微信','QQ');
//设置表头表格宽度
$tablestyle = array(
array('width'=>'5'), //序号
array('width'=>'15'), //手机号
array('width'=>'15'), //插入时间
array('width'=>'15'), //姓名
array('width'=>'50'), //头像
array('width'=>'10'), //发帖权限
array('width'=>'20'), //邮箱
array('width'=>'20'), //微信
array('width'=>'10'), //QQ
);
//填充表头信息
for($i = 0;$i < count($tableheader);$i++) {
$excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");
$excel->getActiveSheet()->getColumnDimension($letter[$i])->setWidth($tablestyle[$i]['width']);
}
//填充表格信息
for ($i = 2;$i <= count($ResultInfo) + 1;$i++) {
$j = 0;
foreach ($ResultInfo[$i - 2] as $key=>$value) {
$excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value");
$j++;
}
}
$filename = "./".date('Y-m-d',time())."-".rand(1111,9999).".xls";
//直接下载的代码
$write = new \PHPExcel_Writer_Excel5($excel);
//$write->save($filename);
header("Pragma: public");
header("Expires: 0");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl;charset=utf-8");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Disposition:attachment;filename='.$filename);
header("Content-Transfer-Encoding:binary");
$write->save('php://output');
}
注意此控制器内需要引入扩展!!!!
引入方式:
use think\PHPExcel;
四、注意事项
在使用时要注意:表格式、表头、表格宽度要一一对应,避免生成异样的数据表格。
相关内容
-
在wps中粘贴保留原格式化|wps中复制文件保留原
在wps中粘贴保留原格式化|wps中复制文件保留原有格式,格式化,...
-
什么是boot.ini文件错误ini的非法解决方案
什么是boot.ini文件错误ini的非法解决方案,,千奇百怪的电脑问...
-
鼠标不能拖动文件了
鼠标不能拖动文件了,鼠标,拖动,本文目录鼠标不能拖动文件了电...
-
Outlook的PST文件损坏的修复方法
Outlook的PST文件损坏的修复方法,文件, ...
-
wps同时选择多个内容|WPS选中多个单元格,同时输
wps同时选择多个内容|WPS选中多个单元格,同时输入同样的内容...
-
电脑什么文件不能删除文件|电脑中哪些文件不能
电脑什么文件不能删除文件|电脑中哪些文件不能删除,,电脑中哪...
-
手机通讯录导出|手机通讯录导出不全
手机通讯录导出|手机通讯录导出不全,,手机通讯录导出不全建议...
-
电脑上怎样打文件|电脑上怎样打文件符号
电脑上怎样打文件|电脑上怎样打文件符号,,电脑上怎样打文件符...
-
将wps转为EX|把WPS文件转为excel表格
将wps转为EX|把WPS文件转为excel表格,转为,如何将,wps,1.怎么...
-
金蝶苍穹开发者社区端口|金蝶软件好用吗?金蝶国
金蝶苍穹开发者社区端口|金蝶软件好用吗?金蝶国际软件集团有...
-
电脑字幕手机怎么载入|电脑字幕手机怎么载入文
电脑字幕手机怎么载入|电脑字幕手机怎么载入文件,,电脑字幕手...
-
u盘看不到文件其他电脑可以看到|电脑里看不到u
u盘看不到文件其他电脑可以看到|电脑里看不到u盘,,1. 电脑里看...
-
开发者吐槽Win10应用商店:还不如WP8.1/Win8.1版
开发者吐槽Win10应用商店:还不如WP8.1/Win8.1版,开发者,商店,Wi...
-
联想笔记本电脑主板颜色|联想笔记本颜色配置文
联想笔记本电脑主板颜色|联想笔记本颜色配置文件,,联想笔记本...
-
wps文档拆分各种元格|WPS拆分单元格
wps文档拆分各种元格|WPS拆分单元格,拆分,文档,wps,1.WPS如何...