tp5导出excel表格(phpexcel)

下载:PHPExcel  https://github.com/PHPOffice/PHPExcel

解压后:Classes文件夹改名为PHPExcel 

tp5导出excel表格(phpexcel)


把文件夹PHPExcel 放到根目录vendor文件夹下

tp5导出excel表格(phpexcel)

<?php
namespace app\admin\controller;
use think\Controller;
use think\Db;

class Excel2 extends Common
{

    /**
     * 初始化
     * HYF
     * Home constructor.
     */
    public function __construct()
    {
        parent::__construct();
        parent::initialize();
    }

    /**
     * 将数据库数据导出为excel文件,超链接访问
     */
    function downLoadExcel()
    {

        $data=json_decode(input('data'),true);
        //获取数据
//        $data=Db::name('marrystatus')->select();

        vendor("PHPExcel.PHPExcel");

        $objPHPExcel = new \PHPExcel();

        // 设置sheet
        $objPHPExcel->setActiveSheetIndex(0);

        // 设置列的宽度
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
        // 设置表头
        $objPHPExcel->getActiveSheet()->SetCellValue('A1', 'MId');
        $objPHPExcel->getActiveSheet()->SetCellValue('B1', 'MDescrib');
        $objPHPExcel->getActiveSheet()->SetCellValue('c1', 'MNotice');
        //存取数据
        $num = 2;
        foreach ($data as $k => $v) {

            $objPHPExcel->getActiveSheet()->SetCellValue('A' . $num, $v['MId']);
            $objPHPExcel->getActiveSheet()->setCellValue('B' . $num, $v['MDescrib']);
            $objPHPExcel->getActiveSheet()->setCellValue('C' . $num, $v['MNotice']);
            $num++;
        }

        // 文件名称
        $fileName = "婚姻状态";
        $xlsName= iconv('utf-8', 'gb2312', $fileName);

        // 设置工作表名
        $objPHPExcel->getActiveSheet()->setTitle('sheet');
        //下载
        $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);

        // $objWriter->save(str_replace('.php', '.xls', dirname(dirname(dirname(dirname(__FILE__)))).'/public/Userbalanceh.xls'));
        ob_end_clean();     // 清除缓冲区,避免乱码

        header("Pragma: public");
        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=".$xlsName.".xls");
        header("Content-Transfer-Encoding:binary");

        $objWriter->save("php://output");
    }}
<a class="layui-btn" href="{:url('admin/Excel2/downLoadExcel')}">导出</a>