thinkphp3.2+PHPExcel导出数据

下载PHPExcel将Classes中的内容放入.\ThinkPHP\Library\Vendor\PHPExcel中

1.创建公共函数common/function.php中

function exportDataExcel($xlsName,$expCellName,$expTableData){

    $fileName = $xlsName.date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
    $cellNum = count($expCellName);//得到表头的长度
    $dataNum = count($expTableData);//得到内容的长度
    vendor("PHPExcel.PHPExcel");//引入EXCEL类包
    $objPHPExcel = new \PHPExcel();//实例化类
    $cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
    $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',$fileName.'店铺数据表'); //输入标题
    $objPHPExcel->setActiveSheetIndex(0)->getStyle ( 'A1' )->getAlignment ()->setHorizontal ( \PHPExcel_Style_Alignment::HORIZONTAL_CENTER );  // 设置单元格水平对齐格式
    $objPHPExcel->setActiveSheetIndex(0)->getStyle ( 'A1' )->getAlignment ()->setVertical ( \PHPExcel_Style_Alignment::VERTICAL_CENTER );      // 设置单元格垂直对齐格式

    //输出标题栏
    for($i=0;$i<$cellNum;$i++){
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
    }

    //输出内容栏
    for($i=0;$i<$dataNum;$i++){
        for($j=0;$j<$cellNum;$j++){
            $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
        }
    }

    //导出execl
    ob_end_clean();
    header('pragma:public');
    header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$fileName.'.xls"');
    header("Content-Disposition:attachment;filename=$fileName.xls");
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
    exit;
}

2.控制器中

public function export(){
        header('content-type:text/html;charset=utf-8');
        //导出的Excel表格的名字
        $xlsName  = "店铺列表";
        //导出的Excel表格的表头
        $xlsCell  = array(
            array('kid','序号'),
            array('ktitle','店铺名'),
            array('kname','联系人'),
            array('ktel','联系电话'),
            array('kqy','区域'),
            array('kcs','城市'),
            array('kdz','地址'),
            array('ktime','注册时间'),
            array('uid','业务员'),
        );
        $xlsData = M('sp')->select();   //你自己数据库查询出来的值
        exportDataExcel($xlsName,$xlsCell,$xlsData);
    }

-------就是控制其中传入的参数需要修改,其他地方直接复制粘贴完事------------

发布了34 篇原创文章 · 获赞 10 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/u014391889/article/details/87883350