thinkphp整合phpexcel实现excel数据导出

浏览:2546 发布日期:2014/05/30 分类:技术分享 关键字: thinkphp phpexcel 下载 导出 excel
第一步:
下载phpexcel

第二步:
将下载的文件夹放到thinkphp中的\Extend\Vendor下面命名为PHPExcel。确认PHPExcel下有一个PHPExcel.php文件

第三步:
自定义导出excel函数在项目的 Common\common.php文件里定义exportExcel函数。代码如下:
/**
     * 用于生成excel文件的函数
     * author:walker
     * @param $data 生成excel的数据(二维数组形式)
     * @param null $savefile 生成excel的文件名(保不指定,则为当前时间戳)
     * @param null $title 生成excel的表头(一维数组形式)
     * @param string $sheetname 生成excel的sheet名称(缺省为sheet1)
     */
    function exportExcel($data,$savefile=null,$title=null,$sheetname='sheet1'){
        //若没有指定文件名则为当前时间戳
        if(is_null($savefile)){
            $savefile=time();
        }
        //若指字了excel表头,则把表单追加到正文内容前面去
        if(is_array($title)){
            array_unshift($data,$title);
        }
        Vendor('PHPExcel.PHPExcel');
        Vendor('PHPExcel.PHPExcel.IOFactory');
        Vendor('PHPExcel.PHPExcel.Reader.Excel5');
        $objPHPExcel = new PHPExcel();
        //Excel内容
        foreach($data as $k => $v){
            $obj=$objPHPExcel->setActiveSheetIndex(0);
            $row=$k+1;//行
            $nn=0;
            foreach($v as $vv){
                $col=chr(65+$nn);//列
                $obj->setCellValue($col.$row,$vv);//列,行,值
                $nn++;
            }
        }
        $objPHPExcel->getActiveSheet()->setTitle($sheetname);
        $objPHPExcel->setActiveSheetIndex(0);
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$savefile.'.xls"');
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit;
    }
第四步:
测试//在此用$list模拟要导出的数据源(一般是从数据库中读取)

        $list=array(
            array('uid'=>1,'email'=>2,'password'=>3),
            array('uid'=>'a','email'=>'b','password'=>'c'),
            array('uid'=>'甲','email'=>'乙','password'=>'丙'),
        );

        //设置要导出excel的表头
        $title=array('标题一','标题二','标题三');

        //进行导出
        exportExcel($list,'一个新文件',$title);
最佳答案
评论( 相关
后面还有条评论,点击查看>>