您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

如何用PHP自定义Excel的导出及合并单元格

2024/6/7 13:19:41发布20次查看
这次跟大家聊聊j如何用php自定义excel的导出及合并单元格,下面就是实战案例,一起来看一下。
首先自定义导出,我用的是一个下拉多选框的一个插件,百度一下就可找到,为了样式好看。如图
value值对应的是你数据库中查出的字段值,text对应的是你的表头信息。ok,然后我是通过get把这俩个值传到我们控制器的。
引入导出类,这个就不多说。
然后就是查询数据库,把数据处理成一个二维数组,进行循环遍历输出在表格中
我的数据格式是1对多的关系,一个班主任对应多个班级,那么我要在表格中合并这个班主任,$count是对班级的统计,当班主任
对应的班级数量>1时,才合并。
$str=$_get['str'];//勾选 $str2=$_get['str2'];//表头 $td_field=explode(',', $str2);//表头 $field=explode(',', $str);//勾选 $objphpexcel=new \phpexcel(); $objphpexcel->getproperties()->setcreator('http://www.jb51.net') ->setlastmodifiedby('http://www.jb51.net') ->settitle('office 2007 xlsx document') ->setsubject('office 2007 xlsx document') ->setdescription('document for office 2007 xlsx, generated using php classes.') ->setkeywords('office 2007 openxml php') ->setcategory('result file'); $objphpexcel->setactivesheetindex(0) ->setcellvalue('a1',$td_field[0]) ->setcellvalue('b1',$td_field[1]) ->setcellvalue('c1',$td_field[2]) ->setcellvalue('d1',$td_field[3]) ->setcellvalue('e1',$td_field[4]) ->setcellvalue('f1',$td_field[5]) ->setcellvalue('g1',$td_field[6]) ->setcellvalue('h1',$td_field[7]) ->setcellvalue('i1',$td_field[8]) ->setcellvalue('j1',$td_field[9]) ->setcellvalue('k1',$td_field[10]) ->setcellvalue('l1',$td_field[11]) ->setcellvalue('m1',$td_field[12]); $i=2; //->mergecells('a18:e22')合并单元格;->getalignment()->setvertical(phpexcel_style_alignment::vertical_center) 垂直居中 foreach($new_array as $k=>$v){ if($v["count"] > 1){ $objphpexcel->setactivesheetindex(0) ->setcellvalue('a'.$i,$v["$field[0]"]) ->setcellvalue('b'.$i,$v["$field[1]"]) ->setcellvalue('c'.$i,$v["$field[2]"]) ->setcellvalue('d'.$i,$v["$field[3]"]) ->setcellvalue('e'.$i,$v["$field[4]"]) ->setcellvalue('f'.$i,$v["$field[5]"]) ->setcellvalue('g'.$i,$v["$field[6]"]) ->setcellvalue('h'.$i,$v["$field[7]"]) ->setcellvalue('i'.$i,$v["$field[8]"]) ->setcellvalue('j'.$i,$v["$field[9]"]) ->setcellvalue('k'.$i,$v["$field[10]"]) ->setcellvalue('l'.$i,$v["$field[11]"]) ->setcellvalue('m'.$i,$v["$field[12]"]) ->mergecells('a'.$i.':a'.($i+$v["count"]-1)) ->mergecells('b'.$i.':b'.($i+$v["count"]-1)) ->mergecells('c'.$i.':c'.($i+$v["count"]-1)) ->mergecells('d'.$i.':d'.($i+$v["count"]-1)) ->mergecells('e'.$i.':e'.($i+$v["count"]-1)) ->mergecells('f'.$i.':f'.($i+$v["count"]-1)) ->mergecells('g'.$i.':g'.($i+$v["count"]-1)) ->mergecells('h'.$i.':h'.($i+$v["count"]-1)) ->mergecells('i'.$i.':i'.($i+$v["count"]-1)); $objphpexcel->setactivesheetindex(0)->getstyle('a'.$i)->getalignment()->setvertical(\phpexcel_style_alignment::vertical_center); $objphpexcel->setactivesheetindex(0)->getstyle('b'.$i)->getalignment()->setvertical(\phpexcel_style_alignment::vertical_center); $objphpexcel->setactivesheetindex(0)->getstyle('c'.$i)->getalignment()->setvertical(\phpexcel_style_alignment::vertical_center); $objphpexcel->setactivesheetindex(0)->getstyle('d'.$i)->getalignment()->setvertical(\phpexcel_style_alignment::vertical_center); $objphpexcel->setactivesheetindex(0)->getstyle('e'.$i)->getalignment()->setvertical(\phpexcel_style_alignment::vertical_center); $objphpexcel->setactivesheetindex(0)->getstyle('f'.$i)->getalignment()->setvertical(\phpexcel_style_alignment::vertical_center); $objphpexcel->setactivesheetindex(0)->getstyle('g'.$i)->getalignment()->setvertical(\phpexcel_style_alignment::vertical_center); $objphpexcel->setactivesheetindex(0)->getstyle('h'.$i)->getalignment()->setvertical(\phpexcel_style_alignment::vertical_center); $objphpexcel->setactivesheetindex(0)->getstyle('i'.$i)->getalignment()->setvertical(\phpexcel_style_alignment::vertical_center); }else{ $objphpexcel->setactivesheetindex(0) ->setcellvalue('a'.$i,$v["$field[0]"]) ->setcellvalue('b'.$i,$v["$field[1]"]) ->setcellvalue('c'.$i,$v["$field[2]"]) ->setcellvalue('d'.$i,$v["$field[3]"]) ->setcellvalue('e'.$i,$v["$field[4]"]) ->setcellvalue('f'.$i,$v["$field[5]"]) ->setcellvalue('g'.$i,$v["$field[6]"]) ->setcellvalue('h'.$i,$v["$field[7]"]) ->setcellvalue('i'.$i,$v["$field[8]"]) ->setcellvalue('j'.$i,$v["$field[9]"]) ->setcellvalue('k'.$i,$v["$field[10]"]) ->setcellvalue('l'.$i,$v["$field[11]"]) ->setcellvalue('m'.$i,$v["$field[12]"]); } $i++; } $objphpexcel->getactivesheet()->settitle('日报'); $objphpexcel->setactivesheetindex(0); //$filename=urlencode('数据表').'_'.date('y-m-dhis'); $filename='日报'.'_'.date('y-m-dhis'); //生成xls文件 header('content-type: application/vnd.ms-excel'); header('content-disposition: attachment;filename="'.$filename.'.xls"'); header('cache-control: max-age=0'); $objwriter = \phpexcel_iofactory::createwriter($objphpexcel, 'excel5'); $objwriter->save('php://output'); exit;
以上就是如何用php自定义excel的导出及合并单元格的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product