1.官網(wǎng)下載PHPExcel庫地址:
https://github.com/PHPOffice/PHPExcel
2導(dǎo)入賬號控制器中
/**
? ? * 導(dǎo)入員工賬號
*/
public function fabu1(){
? ? ? ? Loader::import('PHPExcel.PHPExcel');
? ? ? ? Loader::import('PHPExcel.PHPExcel.PHPExcel_IOFactory');
? ? ? ? Loader::import('PHPExcel.PHPExcel.PHPExcel_Cell'); //實(shí)例化PHPExcel
? ? ? ? ? $objPHPExcel = new \PHPExcel();
? ? ? ? ? $file = request()->file('excel');
? ? ? ? ? if ($file) {
? ? ? ? ? ? ? $file_types = explode(".", $_FILES ['excel'] ['name']); // ["name"] => string(25) "excel文件名.xls"
? ? ? ? ? $file_type = $file_types [count($file_types) - 1];//xls后綴
? ? ? ? ? $file_name = $file_types [count($file_types) - 2];//xls去后綴的文件名 /*判別是不是.xls文件盈包,判別是不是excel文件*/
? ? ? ? ? if (strtolower($file_type) != "xls" && strtolower($file_type) != "xlsx") { echo '不是Excel文件野哭,重新上傳'; die;
? ? ? ? ? }
? ? ? ? ? ? $info = $file->move(ROOT_PATH . 'public' . DS . 'excel');//上傳位置
? ? ? ? ? ? $path = ROOT_PATH . 'public' . DS . 'excel' . DS; $file_path = $path . $info->getSaveName();//上傳后的EXCEL路徑
? ? ? ? ? ? $re = $this->actionRead($file_path, 'utf-8');
? ? ? ? ? ? ? ? array_splice($re, 1, 0);
? ? ? ? ? ? ? ? unset($re[0]);
? ? ? ? ? ? ? ? /*將數(shù)組的鍵改為自定義名稱*/
? ? ? ? ? ? ? ? // print_r($re);die;
? ? ? ? ? ? ? ? $keys = array('name','password','number'); //鍵名按順序
? ? ? ? ? ? ? ? foreach ($re as $i => $vals) {
? ? ? ? ? ? ? ? ? $re[$i] = array_combine($keys, $vals);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? // print_r($re);die;
? ? ? ? ? ? ? for ($i = 1; $i <= count($re); $i++) {
? ? ? ? ? ? ? $data['name'] = $re[$i]['name'];
? ? ? ? ? ? ? $data['password'] = $re[$i]['password'];
? ? ? ? ? ? ? $data['number'] = $re[$i]['number'];
? ? ? ? ? ? ? // print_r($data);die;
? ? ? ? ? ? ? $arr = Db::name('user')->where('name',$re[$i]['name'])->find();
? ? ? ? ? ? ? if(!$arr){
? ? ? ? ? ? ? ? ? $res = Db::name('user')->insert($data);
? ? ? ? ? ? ? }
? ? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return $this->redirect('xfabu');
}
3.
public function actionRead($filename,$encode='utf-8'){
? $objReader = \PHPExcel_IOFactory::createReader('Excel2007');
? $objReader->setReadDataOnly(true);
? $objPHPExcel = $objReader->load($filename);
? $objWorksheet = $objPHPExcel->getActiveSheet();
? $highestRow = $objWorksheet->getHighestRow(); //return $highestRow;
? $highestColumn = $objWorksheet->getHighestColumn();
? $highestColumnIndex = \PHPExcel_Cell::columnIndexFromString($highestColumn);
? //var_dump($highestColumnIndex);
? $excelData = array();
? for($row = 1; $row <= $highestRow; $row++) {
? ? for ($col = 0; $col < $highestColumnIndex; $col++) {
? ? ? $excelData[$row][]=(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
? ? }
? }
? return $excelData;
}
4.文件中
5.數(shù)據(jù)庫中
6導(dǎo)出到Excel
7代碼
/*導(dǎo)出到Excel*/
public function phpExcelList($field, $list, $title='文件')
? ? {
? ? ? ? Loader::import('PHPExcel.PHPExcel');
? ? ? ? Loader::import('PHPExcel.PHPExcel.PHPExcel_IOFactory');
? ? ? ? Loader::import('PHPExcel.PHPExcel.PHPExcel_Cell'); //實(shí)例化PHPExcel
? ? ? ? ? $objPHPExcel = new \PHPExcel();
? ? ? ? // vendor('phpExcel.PHPExcel');
? ? ? ? // $objPHPExcel = new \PHPExcel();
? ? ? ? $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel); //設(shè)置保存版本格式
? ? ? ? foreach ($list as $key => $value) {
? ? ? ? ? ? foreach ($field as $k => $v) {
? ? ? ? ? ? ? ? if ($key == 0) {
? ? ? ? ? ? ? ? ? ? $objPHPExcel->getActiveSheet()->setCellValue($k . '1', $v[1]);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? $i = $key + 2; //表格是從2開始的
? ? ? ? ? ? ? ? $objPHPExcel->getActiveSheet()->setCellValue($k . $i, $value[$v[0]]);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? header("Pragma: public");
? ? ? ? header("Expires: 0");
? ? ? ? header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
? ? ? ? header("Content-Type:application/force-download");
? ? ? ? header("Content-Type:application/vnd.ms-execl");
? ? ? ? header("Content-Type:application/octet-stream");
? ? ? ? header("Content-Type:application/download");;
? ? ? ? header('Content-Disposition:attachment;filename='.$title.'.xls');
? ? ? ? header("Content-Transfer-Encoding:binary");
//? ? ? ? $objWriter->save($title.'.xls');
? ? ? ? $objWriter->save('php://output');
? ? }
? ? ? public function outExcelRecharge() {
? ? ? ? //手機(jī)號
? ? ? ? $data = Db::name('phone')
? ? ? ? ? ? ? ? ? ? ->alias('a')
? ? ? ? ? ? ? ? ? ? ->field(['a.id','a.phone','a.beizhu','a.status','a.time','a.type','a.user_id'])
? ? ? ? ? ? ? ? ? ? ->join('admin_chudan u','u.phone_id=a.id','left')
? ? ? ? ? ? ? ? ? ? ->field('u.user_bianhao ,u.name as uname,u.phone as uphone,u.address,u.money,u.time as utime,u.status as ustatus')
? ? ? ? ? ? ? ? ? ? ->join('admin_user s','s.id=a.user_id','left')
? ? ? ? ? ? ? ? ? ? ->field('s.name as sname,s.number as snumber')
? ? ? ? ? ? ? ? ? ? ->order('u.user_id desc')
? ? ? ? ? ? ? ? ? ? ->select();
? ? ? ? foreach ($data as $key => $value) {
? ? ? ? ? if($data[$key]['type'] == 0){ $data[$key]['type'] ="無" ;} else if($data[$key]['type'] == 1){ $data[$key]['type'] ="審核中" ;}else if($data[$key]['type'] == 2){ $data[$key]['type'] ="已出單" ;}
? ? ? ? ? if($data[$key]['status'] == 0){ $data[$key]['status'] ="未撥打" ;} else if($data[$key]['status'] == 1){ $data[$key]['status'] ="已撥打" ;}
? ? ? ? }
? ? ? ? $field = array(
? ? ? ? ? ? 'A' => array('id', 'ID'),
? ? ? ? ? ? 'B' => array('user_id', '員工ID'),
? ? ? ? ? ? 'C' => array('sname', '員工賬號'),
? ? ? ? ? ? 'D' => array('snumber', '員工編號'),
? ? ? ? ? ? 'E' => array('phone', '手機(jī)號'),
? ? ? ? ? ? 'F' => array('beizhu', '備注'),
? ? ? ? ? ? 'J' => array('type', '出單狀態(tài)'),
? ? ? ? ? ? 'H' => array('status', '撥打狀態(tài)'),
? ? ? ? ? ? 'I' => array('utime', '出單時(shí)間'),
? ? ? ? ? ? 'G' => array('uname', '用戶姓名'),
? ? ? ? ? ? 'K' => array('address', '用戶地址'),
? ? ? ? ? ? 'L' => array('money', '出單金額'),
? ? ? ? );
? ? ? ? $this->phpExcelList($field, $data, '手機(jī)號' . date('Y-m-d'));
? ? }
最后結(jié)果