//导出模板 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 }