phpExcel导出模板

//导出模板
    public function export_model(){
        //ini_set(memory_limit,'1024M');


        vendor("PHPExcel.PHPExcel");
        vendor("PHPExcel.Reader.Excel2007");
        vendor("PHPExcel.IOFactory");

        $objPHPExcel = new \PHPExcel();

        $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);

        $objActSheet = $objPHPExcel->getActiveSheet();

        $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

        $table=input('table');

        //表头数组
        switch ($table){
            case 'village':   //小区信息
                $tableheader = array('小区编码','小区名','省份','城市','区域','街道','道路','地址','所属派出所','小区图片','经度','纬度','高度','坐标面、多点、线','所属坐标系代码');
                $note=array('备注','','','','','','','','','','','','','','所属坐标系代码');
                break;
            case 'people':   //人员信息
                $tableheader = array('姓名','性别','民族','出生日期','籍贯','类别','证件类型','证件号码','小区编号','户籍地行政区划','户籍所在街道','户籍地路名','户籍地详址','居住地行政区划','居住地行政区划代码','居住地路名代码','居住地址','文化程度代码','婚姻状况代码','配偶姓名','配偶证件类型','配偶证件号码','国家代码','入境时间','外文姓','外文名','手机号码1','手机号码1归属人','手机号码1归属人证件类型','手机号码1归属人证件号码','手机号码2','手机号码2归属人','手机号码2归属人证件类型','手机号码2归属人证件号码','手机号码3','手机号码3归属人','手机号码3归属人证件类型','手机号码3归属人证件号码','证件照','数据来源','记录新增或更新时的时间(东八区)');
                $note=array('备注','','','','','户籍人员  来沪人员  境外人员','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','市局人口库 门禁系统 网络采集','');
                break;
            case 'build':   //楼栋信息
                $tableheader = array('小区编码','楼栋编码','楼栋编号','楼层数','户数','楼栋描述','经度','纬度','高度','坐标面、多点、线','所属坐标系代码','记录新增或更新时的时间(东八区)');
                $note=array('备注','','','','','','','','','','','');
                break;
            case 'house':   //房屋信息
                $tableheader = array('小区编码','楼栋编码','楼层编号','房屋编号','房屋编码','房屋类别','房屋用途','房屋面积','最大居住人数','房屋描述','经度','纬度','高度','所属坐标系代码','记录新增或更新时的时间(东八区)');
                $note=array('备注','','','','','','','','','','','','','','');
                break;
            case 'company':   //单位信息
                $tableheader = array('单位编码','小区编码','实有单位名称','单位性质代码','实有单位地址','实有单位照片','实有单位经度','实有单位纬度','实有单位高度','所属坐标系代码');
                $note=array('备注','','','','','','','','','');
                break;
            case 'company_house':   //单位房屋
                $tableheader = array('单位编码','楼栋编码','房屋编号','记录新增或更新时的时间(东八区)');
                $note=array('备注','','','');
                break;
            case 'company_people':    //单位人员
                $tableheader = array('小区编码','楼栋编号','房屋编号','单位编码','证件类型','证件号码','联系方式','入职日期','职位名称','证件照');
                $note=array('备注','','','','','','','','','');
                break;
        }

        //循环表头数组
        foreach ($tableheader as $key=>$val) {
            (string)$str = IntToChr($key);
            //填充表头信息
            $objPHPExcel->getActiveSheet()->setCellValue($str . '1', $tableheader[$key]);
            $objPHPExcel->getActiveSheet(0)->getStyle($str . '1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
            $objPHPExcel->getActiveSheet(0)->getStyle($str . '1')->getFill()->getStartColor()->setARGB('ff00b050');
            $objActSheet->getColumnDimension($str)->setWidth(30);
            $objPHPExcel->getActiveSheet()->getStyle($str)->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);  //将单元格内容转为文本信息(去除科学计数法)
        }

        //循环备注信息
        foreach ($note as $key=>$val) {
            (string)$str_1 = IntToChr($key);
            //填充表头信息
            $objPHPExcel->getActiveSheet()->setCellValue($str_1 . '2', $note[$key]);
            $objPHPExcel->getActiveSheet(0)->getStyle($str_1 . '2')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
            $objPHPExcel->getActiveSheet(0)->getStyle($str_1 . '2')->getFill()->getStartColor()->setARGB('fffcf7b6');
            $objActSheet->getColumnDimension($str_1)->setWidth(30);
        }

        // 表格高度
        $objActSheet->getRowDimension()->setRowHeight(30);
        $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(30);

        // 设置第一行和第二行表格高度
        $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);
        $objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(30);

        $fileName = 'export_'.$table.'_model.xlsx';

        $fileName = iconv("utf-8", "gb2312", $fileName);

        //设置活动单指数到第一个表,所以Excel打开这是第一个表
        $objPHPExcel->setActiveSheetIndex(0);
        //清除缓冲区解决问题
        ob_end_clean();
        ob_start();
        header('Content-Type: application/vnd.ms-excel');
        header("Content-Disposition: attachment;filename=\"$fileName\"");
        header('Cache-Control: max-age=0');
        $bjWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save('php://output'); //文件通过浏览器下载

        // END
    }

 

转载于:https://www.cnblogs.com/zrn-php/p/9254468.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值