TP5.0求助 PHPExcel如何正确使用。
thinkphp吧
全部回复
仅看楼主
level 4
Parky_源 楼主
有大手有已经跑通的demo吗。十分急。初学者问题很多。尝试了很多网上的案例都没有跑通。爆炸了。弄了一天。
2017年03月29日 08点03分 1
level 1
vendor("PHPExcel.PHPExcel");
$extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));//判断导入表格后缀格式
if($extension == 'xlsx') {
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
}else if($extension == 'xls'){
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel =$objReader->load($file_name, $encode = 'utf-8');
}
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();//取得总行数
$highestColumn = $sheet->getHighestColumn(); //取得总列数
//$arrexcel = $objPHPExcel->getSheet(0)->toarray(0);//excel表数据信息
for($i = 2; $i <= $highestRow; $i++){
$data['work_num'] = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue();
$data['st_name'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue();
$data['sex'] = $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue();
$data['phone'] = $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue();
$de_name = $objPHPExcel->getActiveSheet()->getCell("E".$i)->getValue();
$value = M('Department')->where(array('de_name'=>$de_name))->find(); //查询所属部门的名称所对应的 id
$data['de_id'] = $value['de_id'];
$data['password'] = md5(sha1('123456'));
$data['add_time'] = date('Y-m-d H:i:s');
$info = M('Staff')->add($data);
}
if($info){
return ($highestRow-1);
}else{
return false;
}
2017年03月30日 01点03分 2
level 1
导出
$list = M('Staff')->alias('a')->join('tb_department as b on b.de_id = a.de_id')->field('a.st_name as st_name,a.work_num as work_num,b.de_name as de_name,a.sex as sex,a.phone as phone')->select();
$file_name = date('Y-m-d_His').'.xls';
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new \PHPExcel();
header("Content-Disposition:attachment; filename=".$file_name);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', '工号');
$objPHPExcel->getActiveSheet()->SetCellValue('B1', '姓名');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', '性别');
$objPHPExcel->getActiveSheet()->SetCellValue('D1', '电话');
$objPHPExcel->getActiveSheet()->SetCellValue('E1', '所属部门');
$i = 2;
foreach($list as $key => $value){
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$i,''.$value['work_num']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$i,''.$value['st_name']);
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$i,''.$value['sex']);
$objPHPExcel->getActiveSheet()->SetCellValue('D'.$i,''.$value['phone']);
$objPHPExcel->getActiveSheet()->SetCellValue('E'.$i,''.$value['de_name']);
$i++;
}
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
$objWriter->save('php://output');//输出到浏览器
exit;
2017年03月30日 01点03分 3
谢谢!
2017年03月30日 01点03分
1