首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Thinkphp5/tp5框架excel导出

Thinkphp5/tp5框架excel导出

作者头像
申霖
发布于 2019-12-27 09:36:50
发布于 2019-12-27 09:36:50
1.8K00
代码可运行
举报
文章被收录于专栏:小白程序猿小白程序猿
运行总次数:0
代码可运行

今天分享下后台常见功能之一键导出、生成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、代码实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//批量导出数据
    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');
    }

注意此控制器内需要引入扩展!!!!

引入方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use think\PHPExcel;

四、注意事项

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHPExcel生成表格简单实例讲解
躺平程序员老修
2023/09/05
4000
ThinkPHP5.1composer安装和使用PHPExcel
这几天在整PHP的导出.相对5.0版本.5.1废弃了vendor和import助手函数.通过composer自动加载完成引入.废话少说.直接抱起键盘就是干 ? 第一步.通过composer安装phpe
桑先生
2019/12/17
1.8K0
ThinkPHP5.1composer安装和使用PHPExcel
thinkphp5中使用PHPExcel(转载)
你会发现项目的目录中在vendor的目录下多了一个文件夹(phpexcel),这个文件夹中的东西就是要使用的php中的Excel表格操作
lin_zone
2018/08/15
8210
PhpSpreadsheet_phpquery手册
官网文档:https://phpspreadsheet.readthedocs.io/en/stable/
全栈程序员站长
2022/09/30
6770
PhpSpreadsheet_phpquery手册
thinkphp5 excel导出
废话不多说,直接贴代码,类库是phpexcel1.8,将类库解压出来,把classed文件夹里边的东西放到tp中的vender文件夹下边即可 。找不到可以到我的资源页里边下载
黄啊码
2020/05/29
5350
PhpOffice/PhpSpreadsheet读取和写入Excel
PhpSpreadsheet是一个纯PHP编写的组件库,它使用现代PHP写法,代码质量和性能比PHPExcel高不少,完全可以替代PHPExcel(PHPExcel已不再维护)。使用PhpSpreadsheet可以轻松读取和写入Excel文档,支持Excel的所有操作。
程序猿的栖息地
2022/04/29
7.1K0
ThinkPHP5.1 excel表的导入导出操作 (PHPExcel)
安装成功后,会注意到项目的vendor目录下,多出了一个phpoffice文件夹
泥豆芽儿 MT
2019/05/06
2.9K0
ThinkPHP5.1  excel表的导入导出操作 (PHPExcel)
如何使用Webman框架实现Excel导入导出?
本文会介绍Webman框架中使用PhpSpreadsheet操作Excel,供大家参考。
Tinywan
2023/11/13
9460
如何使用Webman框架实现Excel导入导出?
PHP与EXCEL PHPExcel
PHPExcel 它是用来操作Office Excel 文档PHP图书馆,它是基于微软的OpenXML标准PHP语言。能够使用它来读、写不同格电子表的类型格,例如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
全栈程序员站长
2022/07/06
1.6K0
phpoffice/phpexcel 导出Excel表格数据
1. 下载扩展包 composer require phpoffice/phpexcel 2. 导出数据封装 在TP中使用时可以将以下类文件放入 extend 目录 <?php /** * 导出数据
很酷的站长
2023/01/16
2.2K0
ThinkPHP5.1 框架下 PhpSpreadsheet 操作 Excel 表的导入导出
相对来说,这个需求是简单的,在此讲解一下鄙人的操作思路: 首先,设置一个 一维的 "目标数据"ThinkPHP5
泥豆芽儿 MT
2022/01/06
3.4K1
ThinkPHP5.1 框架下 PhpSpreadsheet 操作 Excel 表的导入导出
php导出excel表格_phpspreadsheet导出
单个sheet页Excel2003版最大行数是65536行。Excel2007开始的版本最大行数是1048576行。Excel2003的最大列数是256列,2007以上版本是16384列。
全栈程序员站长
2022/09/30
25.1K1
php导出excel表格_phpspreadsheet导出
PhpSpreadsheet(PHPExcel)的使用 —— 生成/读取excel
PHPExcel已经不再维护,PhpSpreadsheet是PHPExcel的下一个版本
崔哥
2022/05/25
1.7K0
php案例:导出excel并且浏览器下载excel
贵哥的编程之路
2023/12/23
4500
php案例:导出excel并且浏览器下载excel
PHP 操作PHPExcel(设置字体、设置边框、合并单元格、设置、设置背景色、以及单元格内换行、单元格不以科学记数法显示等)
结合数据库查询写一个简单的小例子:场景有这样一个订单表如图,我们把1-20号订单,21-40号订单,41-60号订单分开放在不同的sheet里面。
友儿
2022/09/11
5.4K0
phpspreadsheet中文手册_php打开文件
PhpSpreadsheet要求PHP 7.3及以上版本,是PHPExcel库的扩展版本,可用来读写xls、xlsx、CSV、HTML等格式文件。
全栈程序员站长
2022/09/30
7K0
PhpSpreadsheet_vba遍历所有sheet
* sudo composer require phpoffice/phpspreadsheet
全栈程序员站长
2022/11/04
6790
excel导入与导出
基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。修改这种文件后再保存,通常会提示你是否要转换成Excel文件。 优点:简单。 缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。 2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。 如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312: $yourStr
joshua317
2018/04/10
2.1K0
Thinkpgp5.1根据多条件和时间筛选查询数据,并导出Excel相应表格数据
网络上关于Thinkphp5的教程非常多,从基础到实战,从简单到困难,应有尽有。以后我会在每天给大家分享一些项目实战的功能点,这些功能点都是我平时开发用到的,如果写的不好还望您指出来,大家一起学习交流。每天只需花2分钟的时间就可以丰富自己的知识和提高专业技能。
程序猿的栖息地
2022/04/29
1.2K0
Thinkpgp5.1根据多条件和时间筛选查询数据,并导出Excel相应表格数据
推荐阅读
相关推荐
PHPExcel生成表格简单实例讲解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档