isAjax()) { //分页参数 $length = input('rows', 10, 'intval'); //每页条数 $page = input('page', 1, 'intval'); //第几页 $start = ($page - 1) * $length; //分页开始位置 $order = 'id desc'; $title = input('title','','trim'); if($title !=''){ $map[] = ['ga.title','like','%'.$title.'%']; } $map[] = ['gr.org_id', '=', $this->orgId]; $map = empty($map) ? true : $map; //数据查询 $lists = Db::name('green_record') ->alias('gr') ->join('green_addr ga', 'ga.id=gr.green_addr_id') ->field('gr.*,ga.title') ->where($map) ->limit($start, $length) ->order($order) ->select(); foreach ($lists as $k => $v) { $lists[$k]['user_name'] = Db::name('user') ->where('id', $v['user_id']) ->value('real_name'); $lists[$k]['cate_name'] = Db::name('green_cate')->where('id',$v['green_cate_id'])->value('title'); } //数据返回 $totalCount = Db::name('green_record') ->alias('gr') ->field('gr.*,ga.title') ->join('green_addr ga', 'ga.id=gr.green_addr_id') ->where($map) ->count(); $totalPage = ceil($totalCount / $length); $result['page'] = $page; $result['total'] = $totalPage; $result['records'] = $totalCount; $result['rows'] = $lists; return json($result); } else { $this->assign('meta_title', '养护记录列表'); return $this->fetch(); } } public function details($id) { if (!$id) { $this->error('参数错误'); } $info = Db::name('green_record')->where('id', $id)->find(); $info['addr'] = Db::name('green_addr')->where('id', $info['green_addr_id'])->value('title'); $info['cate_name'] = Db::name('green_cate')->where('id',$info['green_cate_id'])->value('title'); $info['user_name'] = Db::name('user')->where('id', $info['user_id']) ->value('real_name'); $info['images'] = isset($info['images'])?explode(',',$info['images']):''; $this->assign('info', $info); $this->assign('meta_title', '养护记录详情'); return $this->fetch(); } //excel导出 public function export() { $meta_title = '养护记录'; if (request()->isPost()) { $start = input('start'); $end = input('end'); $where[] = ['create_yyyymmdd', '>=', $start]; $where[] = ['create_yyyymmdd', '<=', $end]; $where[] = ['org_id', '=', $this->orgId]; $ret = Db::name('green_record')->where($where)->select(); foreach ($ret as $k => $v) { $ret[$k]['user_name'] = Db::name('user') ->where('id', $v['user_id'])->value('real_name'); $ret[$k]['addr'] = Db::name('green_addr') ->where('id', $v['green_addr_id']) ->value('title'); $ret[$k]['cate_name'] = Db::name('green_cate')->where('id',$v['green_cate_id'])->value('title'); } include_once env('root_path').'/extend/phpexcel/Classes/PHPExcel.php'; //实例化PHPExcel类 $objPHPExcel = new \PHPExcel(); //激活当前的sheet表 $objPHPExcel->setActiveSheetIndex(0); //设置表格头(即excel表格的第一行) $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '编号') ->setCellValue('B1', '地点名称') ->setCellValue('C1', '设备内容') ->setCellValue('D1', '执行人员') ->setCellValue('E1', '执行时间') ->setCellValue('F1', '分类'); // 设置表格头水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('G1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('H1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置列水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('H')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置单元格宽度 $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(50); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(20); //循环刚取出来的数组,将数据逐一添加到excel表格。 for ($i = 0; $i < count($ret); $i++) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $ret[$i]['id']);//ID $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $ret[$i]['addr']); $objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 2), $ret[$i]['content']); $objPHPExcel->getActiveSheet()->setCellValue('D' . ($i + 2), $ret[$i]['user_name']);//维护人员 $objPHPExcel->getActiveSheet()->setCellValue('E' . ($i + 2), $ret[$i]['create_time']);//维护时间 $objPHPExcel->getActiveSheet()->setCellValue('F' . ($i + 2), $ret[$i]['cate_name']); } //设置保存的Excel表格名称 $filename = '养护记录_' . date('YmdHis', time()) . '.xls'; //设置当前激活的sheet表格名称 $objPHPExcel->getActiveSheet()->setTitle('养护记录'); //设置浏览器窗口下载表格 ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename); //生成excel文件 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //下载文件在浏览器窗口 return $objWriter->save('php://output'); } $this->assign('s',date('Ymd')); $this->assign('e',date('Ymd',time()+(3*86400))); $this->assign('meta_title', $meta_title); return $this->fetch(); } }