php如何导出excel表格?针对这个问题,今天小编总结这篇有关php导出表格的文章,希望帮助更多想学习php的同学找到更加简单易行的办法。
首先下载PHPExcel包并将包引入到项目中;然后实例化PHPExcel对象;接着设置表格的列,以及列队属性;再将数据添加到表格中;最后将表格文件数据输出即可。
PHPExcel
是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格
ThinkPHP示例
public function exportExcel()
{
//先获取数据
$where['comid'] = session('uid');
$res = M('cheliang')->where($where)->select();
// var_dump($res);die;
//下面就是导出的步骤了
vendor('PHPExcel0.Classes.PHPExcel');
$objPHPExcel = new \PHPExcel();
$objPHPExcel->createSheet(0);
$objPHPExcel->setActiveSheetIndex(0);
//只需要把你想要的字段改成你自己需要的就可以了!!!
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '考试人')
->setCellValue('B1', '车牌')
->setCellValue('C1', '考试时间')
->setCellValue('D1', '考试分数')
->setCellValue('E1', '签名');
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);//设置单元格宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(50);//设置单元格宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);//设置单元格宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);//设置单元格宽度
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); //第一行是否加粗
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); //第一行是否加粗
$objPHPExcel->getActiveSheet()->getStyle('C1')->getFont()->setBold(true); //第一行是否加粗
$objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setBold(true); //第一行是否加粗
$objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->setBold(true); //第一行是否加粗
//$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(16); //第一行字体大小
// 设置垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
// 设置行高度
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20); //设置默认行高
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30); //第一行行高
//循环添加数据,注意的是下面的$kk+2,是因为$kk是下标,从0开始的,而第一行是你的标题,所以要从第二行开始才是你的数据
foreach ($data as $kk => $vv) {
$no = $kk + 2;
$currentSheet = $objPHPExcel->getActiveSheet();
$currentSheet->setCellValue('A' . $no, $vv['xueyuan']['name']);
$currentSheet->setCellValue('B' . $no, $vv['xueyuan']['chepaihao']);
$currentSheet->setCellValue('C' . $no, date('Y-m-d H:i:s',$vv['addtime']).'至'.date('Y-m-d H:i:s',$vv['sbttime']));
$currentSheet->setCellValue('D' . $no, $vv['score']);
//设置单元格高度,这个是重点哦
$currentSheet->getRowDimension($no) -> setRowHeight(40);
// 图片生成
$objDrawing[$kk] = new \PHPExcel_Worksheet_Drawing();//这个就是生成图片的类(重点)
$objDrawing[$kk]->setPath('./'.$vv['qmimg']);/图片的路径
// 设置宽度高度
$objDrawing[$kk]->setHeight(85);//照片高度
$objDrawing[$kk]->setWidth(100); //照片宽度
/*设置图片要插入的单元格*/
$objDrawing[$kk]->setCoordinates('E'.$no);
// 图片偏移距离
$objDrawing[$kk]->setOffsetX(12);
$objDrawing[$kk]->setOffsetY(12);
$objDrawing[$kk]->setWorksheet($objPHPExcel->getActiveSheet());
}
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . '文件名称'. '.xls"');
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}
以上就是php导出表格的具体操作,代码详细清楚,如果在日常工作遇到这个问题,希望你能通过这篇文章解决问题。如果想了解更多相关内容,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。