PHPExcel基本使用
1、效果
2、PHPExcel扩展
链接:https://pan.baidu.com/s/1VPj1-CqafHkdTxed0SrvYQ
提取码:ui2o
3、代码
public function exportAction(){
require_once APP_PATH . '/library/PHPExcel.php'; //引入PHPEXCEL类
$objPHPExcel = new PHPExcel(); //实例化Excel类
//第一个sheet填入主标题
$title = '信息';
$first_sheet_title = '统计'; //设置为第一个
//$objPHPExcel->createSheet(); //创建一个新的sheet[先创建再设置]
//$objPHPExcel->setActiveSheetIndex(1);
$objPHPExcel->getActiveSheet()->setCellValue('A1', $title.$first_sheet_title);
//合并单元格
$objPHPExcel->getActiveSheet()->mergeCells('A1:E1');
//设置居中
$objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//设置单元格宽
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(6);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
//字体加粗
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('宋体') //字体
->setBold(true); //字体加粗
$objPHPExcel->getActiveSheet()->getStyle('A2')->getFont()->setName('宋体') //字体
->setBold(true); //字体加粗
$objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->setName('宋体') //字体
->setBold(true); //字体加粗
$objPHPExcel->getActiveSheet()->getStyle('C2')->getFont()->setName('宋体') //字体
->setBold(true); //字体加粗
$objPHPExcel->getActiveSheet()->getStyle('D2')->getFont()->setName('宋体') //字体
->setBold(true); //字体加粗
$objPHPExcel->getActiveSheet()->getStyle('E2')->getFont()->setName('宋体') //字体
->setBold(true); //字体加粗
//第一sheet入职
$array = array(
array("序号","部门","职位","姓名",'入职时间','数字'),
);
for ($x = 0;$x<10; $x++){ //生成模拟数据
$docArray[] = ['id'=>1, 'department'=>'运营部', 'post_title'=>'美文', 'real_name'=>'张三', 'start_date'=>'2019-04-12 13:12:12','number'=>'314159265312234435'];
}
$data = array();// A-N
if(is_array($docArray)){
foreach($docArray as $key=>$value){
$data[$key][]=$value['id'];
$data[$key][]=$value['department'];
$data[$key][]=$value['post_title'];
$data[$key][]=$value['real_name'];
$data[$key][]=$value['start_date'];
$data[$key][]=$value['number'];
}
}
//合并title
$new_arr = array_merge($array,$data);
//写入到每一行
$k = 1;
$ZiMU = [ 'A'=>0, 'B'=>1, 'C'=>2, 'D'=>3, 'E'=>4, 'F'=>5, 'G'=>6,
'H'=>7, 'I'=>8, 'J'=>9, 'K'=>10, 'L'=>11, 'M'=>12, 'N'=>13
];
foreach ($new_arr as $val){
$k = $k+1;
$objPHPExcel->getactivesheet()->setcellvalue('A'.$k, $val[0]);//第A列 第$k行,值
$objPHPExcel->getactivesheet()->setcellvalue('B'.$k, $val[1]);
$objPHPExcel->getactivesheet()->setcellvalue('C'.$k, $val[3]);
$objPHPExcel->getactivesheet()->setcellvalue('D'.$k, $val[4]);
//$objPHPExcel->getactivesheet()->setcellvalue('E'.$k, $val[5]);
$objPHPExcel->getActiveSheet()->setCellValueExplicit('E'.$k, $val[5], PHPExcel_Cell_DataType::TYPE_STRING); //字符串显示
}
//最后通过浏览器输出
$fn = "入职信息(".date("Y.m.d").").xls"; //要保存的文件名
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header("Content-Disposition: attachment;filename=$fn");
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}