laravel框架集成PHPExcel讲解及demo
来源:互联网 发布:手机网络初始化失败 编辑:程序博客网 时间:2024/06/05 20:08
首先,由于业务需求,需要把一些数据用excel导出,给硬件人员看。由于我自己用的是laravel 的一键安装包,所以使用laravel自带的Excel就成为了一种奢望。因此,这里使用PHPExcel,这个通用性较强的第三方。
一、下载并引入到项目中
1、先去PHPExcel官网下载,直接去gitHub上下载即可。地址:
https://github.com/PHPOffice/PHPExcel
2、将下载好的文件引进我们的项目
关于laravel引入第三方库的方法:
http://blog.csdn.net/ljfphp/article/details/78546179
3、将关键代码引入控制器方法中
//这里使用base_path()方法获取项目根目录,然后引入文件。 require_once(base_path() . '/app/Libs/PHPExcel/Classes/PHPExcel.php'); // require_once(base_path() . '/app/Libs/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php');
二、实际demo
//PHPExcel带出excel表格 public function test_export(Request $request){ require_once(base_path() . '/app/Libs/PHPExcel/Classes/PHPExcel.php'); require_once(base_path() . '/app/Libs/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php'); //要输出的数据,二维数组 $datas = array( array('王城', '男', '18', '1997-03-13', '18948348924'), array('李飞虹', '男', '21', '1994-06-13', '159481838924'), array('王芸', '女', '18', '1997-03-13', '18648313924'), array('郭瑞', '男', '17', '1998-04-13', '15543248924'), array('李晓霞', '女', '19', '1996-06-13', '18748348924'), ); // 创建一个excel $objPHPExcel = new \PHPExcel(); //设置文件创建人,文件名,以及excel表格的表头部分 $objPHPExcel->getProperties()->setCreator("金峰兄")->setLastModifiedBy("金峰兄")->setTitle("金峰兄")->setSubject("金峰兄")->setDescription("金峰兄")->setKeywords("金峰兄")->setCategory("金峰兄"); $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', '名字')->setCellValue('B1', '性别')->setCellValue('C1', '年龄')->setCellValue('D1', '出生日期')->setCellValue('E1', '电话号码'); // 表格的标题 $objPHPExcel->getActiveSheet()->setTitle('金峰兄-' . date('Y-m-d')); //设置当前的表格,也就是第一行的表格 $objPHPExcel->setActiveSheetIndex(0); //设置所有表格的默认高度 $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15); //循环赋值,填充表格 foreach ($datas as $k=>$data) { //由于$k是键名,是从0开始的,而我们的表格的正式内容的第一行是表头部分,比如:姓名,年龄等 //所以这边的 A.($k+2)代表的是A2的内容,相当于都从第二行开始填充 $objPHPExcel->getActiveSheet()->setCellValue('A' . ($k+2), $data[0])->getStyle('A' . ($k+2))->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($k+2), $data[1]); $objPHPExcel->getActiveSheet()->setCellValue('C' . ($k+2), $data[2]); $objPHPExcel->getActiveSheet()->setCellValueExplicit('D' . ($k+2), $data[3], \PHPExcel_Cell_DataType::TYPE_STRING); $objPHPExcel->getActiveSheet()->getStyle('D' . ($k+2))->getNumberFormat()->setFormatCode("@"); // 设置文本格式 $objPHPExcel->getActiveSheet()->setCellValueExplicit('E' . ($k+2), $data[4], \PHPExcel_Cell_DataType::TYPE_STRING); $objPHPExcel->getActiveSheet()->getStyle('E' . ($k+2))->getAlignment()->setWrapText(true); //} } //这边可以打印下,就可以看到我们已经把数组的内容放到excel对象中了 /* var_dump($objPHPExcel); exit;*/ $objActSheet = $objPHPExcel->getActiveSheet(); // 设置CELL填充颜色 $cell_fill = array( 'A1', 'B1', 'C1', 'D1', 'E1', ); // TODO 加注释 //设置格式 foreach($cell_fill as $cell_fill_val){ $cellstyle = $objActSheet->getStyle($cell_fill_val); $cellstyle->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT)->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); // 字体格式,中间的14代表了字体的大小 $cellstyle->getFont()->setSize(14)->setBold(true); // 边框格式 $cellstyle->getBorders()->getTop()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN)->getColor()->setARGB('FFFF0000'); $cellstyle->getBorders()->getBottom()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN)->getColor()->setARGB('FFFF0000'); $cellstyle->getBorders()->getLeft()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN)->getColor()->setARGB('FFFF0000'); $cellstyle->getBorders()->getRight()->setBorderStyle(\PHPExcel_Style_Border::BORDER_THIN)->getColor()->setARGB('FFFF0000'); } //设置第一行单元格高度 $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30); //设置单元格的宽度 $objActSheet->getColumnDimension('A')->setWidth(18.5); $objActSheet->getColumnDimension('B')->setWidth(23.5); $objActSheet->getColumnDimension('C')->setWidth(12); $objActSheet->getColumnDimension('D')->setWidth(12); $objActSheet->getColumnDimension('E')->setWidth(12); $filename = '峰兄的测试表格'; ob_end_clean();//清除缓冲区,避免乱码 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$filename.'.xls"'); header('Cache-Control: max-age=0'); // 如果是在ie9浏览器下,需要用到这个 header('Cache-Control: max-age=1'); // 如果你是在ie浏览器或者https下,需要用到这个 header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel); $objWriter->save('php://output'); }
这段代码是经过我测试的,大家可以直接粘贴下来,先在本地跑一下,看看生成的文件。然后再仔细的看一下注释,解释的挺清楚的。
具体可参考PHPExcel中文手册:
http://www.jquerycn.cn/a_17115
三、成功演示
这就是我本地测试生成的excel文件,确实是成功了。当然,实际使用中,数据是需要我们自己查询,然后转换为数组的,这个就需要大家根据自己的逻辑来写了。
end
阅读全文
1 0
- laravel框架集成PHPExcel讲解及demo
- laravel框架实现phpExcel导入导出
- laravel框架实现phpExcel导入导出
- Spring讲解----------集成框架
- laravel框架实现phpExcel导入导出,首先必须在laravel引入第三方类
- Laravel 加载PHPEXCEL
- Laravel PHPExcel 使用
- laravel phpexcel 导入导出
- laravel phpexcel 导入导出
- laravel PHPExcel使用
- PHPExcel中导出数据报错!个人遇见的问题,用的laravel框架
- PHPexcel 导入Demo
- phpexcel 导出Demo
- PHPExcel入门(基于laravel 5.2)
- yii集成phpexcel
- Codeigniter集成PHPExcel
- Lumen (Laravel子框架) 简介及分析
- 集成了Laravel的Eloquent ORM的Yaf框架
- 使用MyBatis对项目中的统计功能进行处理的查询语句优化
- View钩子
- Proe5 .0wildfire免安装版去掉进入时的安装弹框脚本错误提示
- 智能指针
- 笔试题1
- laravel框架集成PHPExcel讲解及demo
- spring框架的定时器应用
- Can't create table #sql-2e4_14.frm' (errno: 150)--创建外键时发生的错误
- CentOS 7 创建eclipse快捷方式
- Add Two Numbers
- MyBatis动态sql_trim自定义字符串截取
- 机器学习中的超参数
- MOSFET管开关电路基本知识总结
- 注册系统管理员