ThinkPHP3.2 + PHPExcel 进行execl文件导出操作

2024-01-27 18:38

本文主要是介绍ThinkPHP3.2 + PHPExcel 进行execl文件导出操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本次是进行execl导出实例的讲解,

1、首先下载PHPExcel扩展类 (可以百度   没有的找我要157400661@qq.com)


2、在ThinkPHP引入PHPExcel  那么我是放到了Vendor中


3、然后就可以开心的去写控制器方法了

注意要这样写去引用哦 $excel = new \PHPExcel();

因为我是导出excel 先保存到服务器然后再将导出的文件和其他文件一起进行压缩后下载的(文件合并压缩后续我会再写文档介绍) 所以这段代码最后ajax返回的操作可以不用管

如果大家想直接导出后就下载  可以参考最后注释的几行

/*** 真正的导出* @param  array $complain_info 投诉信息结构体* $is_download_mv  是否下载视频* @return [type]                [description]*/public function export_complain($complain_info,$is_download_mv){Vendor('PHPExcel.PHPExcel','','.class.php');//创建对象$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','I','J','K','L');//表头数组$tableheader = array('序号','车牌号','车牌颜色','投诉说明','投诉地点','投诉人','投诉时间','投诉人手机号','投诉人微信号','微信昵称','状态','进展','奖励');$tablestyle = array(array('width'=>'5'),array('width'=>'15'),array('width'=>'10'),array('width'=>'40'),array('width'=>'30'),array('width'=>'10'),array('width'=>'15'),array('width'=>'15'),array('width'=>'15'),array('width'=>'15'),array('width'=>'10'),array('width'=>'10'),array('width'=>'10'),);// 如果选择视频下载if($is_download_mv){$letter[] = 'M';$tableheader[] = '视频地址(相对路径)';$tablestyle[] = array('width'=>'30');}// id , plate_num,color,msg,place,name,time,phone,weixin,wx_name,status,process//填充表头信息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($complain_info) + 1;$i++) {$data = $complain_info[$i - 2];if($is_download_mv){$this->mv_arr[] = $data['vedio'];$tmp = explode('/',$data['vedio']);$tmpurl = array_pop($tmp);$excel->getActiveSheet()->setCellValue("$letter[13]$i","{$tmpurl}");}$excel->getActiveSheet()->setCellValue("$letter[0]$i","{$data['id']}");$excel->getActiveSheet()->setCellValue("$letter[1]$i","{$data['plate_num']}");$excel->getActiveSheet()->setCellValue("$letter[2]$i","{$data['color_str']}");$excel->getActiveSheet()->setCellValue("$letter[3]$i","{$data['msg']}");$excel->getActiveSheet()->setCellValue("$letter[4]$i","{$data['place']}");$excel->getActiveSheet()->setCellValue("$letter[5]$i","{$data['name']}");$excel->getActiveSheet()->setCellValue("$letter[6]$i","{$data['time']}");$excel->getActiveSheet()->setCellValue("$letter[7]$i","{$data['phone']}");$excel->getActiveSheet()->setCellValue("$letter[8]$i","{$data['weixin']}");$excel->getActiveSheet()->setCellValue("$letter[9]$i","{$data['wx_name']}");$excel->getActiveSheet()->setCellValue("$letter[10]$i","{$data['status_str']}");$excel->getActiveSheet()->setCellValue("$letter[11]$i","{$data['process_str']}");$excel->getActiveSheet()->setCellValue("$letter[12]$i","{$data['gift_send_str']}");}//创建Excel输入对象$write = new \PHPExcel_Writer_Excel5($excel);$filename = $this->execl_url.'/report_list_'.date("Y-m-d-H.i.s").'.xls';$write->save($filename);// 进行下一步文件压缩if($is_download_mv){$this->mv_arr[] = $filename;$this->filezip();}else{$result['code'] =200;$result['filename'] =$filename;$this->ajaxReturn($result);return true;}echo 0;
//		直接下载的代码
//		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");
//		header("Content-Type:application/octet-stream");
//		header("Content-Type:application/download");;
//		header('Content-Disposition:attachment;filename="客栈信息.xls"');
//		header("Content-Transfer-Encoding:binary");
//		$write->save('php://output');}

导出后直接下载代码

   //创建Excel输入对象$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");header("Content-Type:application/octet-stream");header("Content-Type:application/download");;header('Content-Disposition:attachment;filename="客栈信息.xls"');header("Content-Transfer-Encoding:binary");$write->save('php://output');


这篇关于ThinkPHP3.2 + PHPExcel 进行execl文件导出操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/651137

相关文章

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时