TP5实现PHPExcel史上最完整的导出Excel文件

      在开发项目当中,不少也会遇到导入导出Excel表格。然而,没有弄过的小白,估计抓破头皮,都不一定能想得出来怎么实现,但是百度是个好东西。本人也通过百度,最终做出来了。好了,废话不多说,哥要开始表演啦,开好啦!

1、需要下载PHPExcel的SDK。我已经放在网盘中了,还没下载好的朋友,可以去下载哦。PHPExcel下载 ,提取码:engi

2、步骤: 把下载好的PHPExcel,放在verdor的根目录哦

html: 

php:

<?php
namespace app\admin\controller;
use think\Db;
use think\Request;
use think\Controller;
class Message extends Controller
{

    public function index(){
        return $this->fetch(); 
    }
    /**
     * 导出excel文件
     */
    public function excel_data(){
        ob_clean();
        vendor("PHPExcel.PHPExcel"); 
        $objPHPExcel = new \PHPExcel();
        $objProps = $objPHPExcel->getProperties();
        $modelname = "留言表" . date('Y-m-d');
        $showdata = db('message')->order('message_id desc')->select();
        if (!$showdata) {
            echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
            echo '<script type="text/javascript">alert("无记录");history.go(-1);</script>';
            exit;
        } 
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(5);
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(30);
        $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);
        // 表头
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '名称')
            ->setCellValue('B1', '加盟电话')
            ->setCellValue('C1', '留言信息')
            ->setCellValue('D1', '留言时间')
            ->setCellValue('E1', '加盟项目');
        // 内容
        $column = 2;
        foreach ($showdata as $k => $data) {
            $objPHPExcel->getActiveSheet(0)->setCellValue('A' . $column, $data['message_id']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('B' . $column, $data['tel']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('C' . $column, $data['content']);
            $objPHPExcel->getActiveSheet(0)->setCellValue('D' . $column, date("Y-m-d H:i:s",$data['addtime']));
            $objPHPExcel->getActiveSheet(0)->setCellValue('E' . $column, $data['brand']);
            $column++;
        }
        $objPHPExcel->getActiveSheet()->setTitle($modelname);
        $objPHPExcel->setActiveSheetIndex(0);
        // 输出
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename=' . $modelname . '.xls');
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit;
    }
}

最终的效果图:

猜你喜欢

转载自blog.csdn.net/li3839/article/details/88824721