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