asp.net 设置 excel alignment_Thinkphp5/tp5框架excel导出

afa12faae9235212a1fbf4f15c980b05.png

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

一、开发环境

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

开框架:thinkphp5.0版本

713e684551bb485a3f8d0f24bf3a73ab.png

二、准备工作

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 thinkPHPExcel;

四、注意事项

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值