您的位置 首页 php

Thinkphp5/tp5框架excel导出

今天分享下后台常见功能之一键导出、生成excel表格问题,使用PHPExcel扩展实现功能,下面具体说下是如何实现的。

不要仰望别人,自己亦是风景

一、 开发环境

开发环境:本地环境(win、 wamp

开框架: thinkphp 5.0版本

PHP

二、准备工作

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

PHP开发

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()->setCell value ("$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;
 

四、注意事项

在使用时要注意:表格式、表头、表格宽度要一一对应,避免生成异样的数据表格。

文章来源:智云一二三科技

文章标题:Thinkphp5/tp5框架excel导出

文章地址:https://www.zhihuclub.com/152504.shtml

关于作者: 智云科技

热门文章

网站地图