ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
~~~ 安装命令:composer require phpoffice/phpexcel ~~~ 安装完毕后,目录如下: ![](https://box.kancloud.cn/60bf94c6022b8ae1141013a5a17128a8_231x285.png) 在使用时,需要引入classes目录下的PHPExcel.php的PHPExcel类以及classes\\PHPExcel\\IOFactory.php的PHPExcel\_IOFactory类。 具体项目实例在项目经验中查看。 #### **使用步骤:** ~~~ //如果使用thinkphp5.1框架,则直接use即可 use PHPExcel_IOFactory; use PHPExcel; //实例化phpexcel对象 $objPHPExcel = new \PHPExcel(); //设置Excel属性 $objPHPExcel->getProperties() ->setCreator("Maarten Balliauw") //创建人 ->setLastModifiedBy("Maarten Balliauw") //最后修改人 ->setTitle("Office 2007 XLSX Test Document") //设置标题 ->setSubject("Office 2007 XLSX Test Document") //设置主题 ->setDescription("Test document ") //设置备注 ->setKeywords( "office 2007 openxml php") //设置关键字 ->setCategory( "Test result file"); //设置类别 // 给表格添加数据 $objPHPExcel->setActiveSheetIndex(0) //设置第一个内置表(一个xls文件里可以有多个表)为活动的 ->setCellValue( 'A1', 'Hello' ) //给表的单元格设置数据 ->setCellValue( 'B2', 'world!' ) //数据格式可以为字符串 ->setCellValue( 'C1', 12) //数字型 ->setCellValue( 'D2', 12) // ->setCellValue( 'D3', **true** ) //布尔型 ->setCellValue( 'D4', '=SUM(C1:D2)' );//公式 //激活当前表 $objPHPExcel->setActiveSheetIndex(0); ob_end_clean();//清除缓冲区,避免乱码 //最后只需要生成Excel或者提示下载即可 //生成Excel,并自定义保存路径 //"Excel2007"生成2007版本的xlsx,"Excel5"生成2003版本的xls $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5'); $objWriter->save($path); //弹出提示下载文件 header('pragma:public'); header("Content-Disposition:attachment;filename=$expFileName"); header('Cache-Control: max-age=0'); $objWriter = PHPExcel\_IOFactory:: *createWriter*($objPHPExcel, 'Excel2007'); $objWriter->save( 'php://output'); ~~~ #### **设置Excel样式:** ~~~ //设置宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(200); //设置单元格宽度 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); //内容自适应 //设置align(需要引入PHPExcel_Style_Alignment) $objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);//水平方向上两端对齐 $objPHPExcel->getActiveSheet()->getStyle( 'A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直方向上中间居中 //合并拆分单元格 $objPHPExcel->getActiveSheet()->mergeCells('A28:B28'); // A28:B28合并 $objPHPExcel->getActiveSheet()->unmergeCells('A28:B28'); // A28:B28再拆分 //字体大小、粗体、字体、下划线、字体颜色(需引入PHPExcel_Style_Font、PHPExcel_Style_Color) $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20); $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara'); $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE); //默认字体、大小 $objPHPExcel->getDefaultStyle()->getFont()->setName( 'Arial'); $objPHPExcel->getDefaultStyle()->getFont()->setSize(20); //背景填充 $objPHPExcel->getActiveSheet()->getStyle( 'A3:E3')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objPHPExcel->getActiveSheet()->getStyle( 'A4:E4')->getFill()->getStartColor()->setARGB('FFC125'); // 单元格密码保护不让修改 $objPHPExcel->getActiveSheet()->getProtection()->setSheet( **true**); // 为了使任何表保护,需设置为真 $objPHPExcel->getActiveSheet()->protectCells( 'A3:E13', 'PHPExcel' ); // 将A3到E13保护 加密密码是 PHPExcel $objPHPExcel->getActiveSheet()->getStyle( 'B1')->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); //去掉保护 //给单元格内容设置url超链接 $objActSheet->getCell('E26')->getHyperlink()->setUrl( 'http://www.phpexcel.net'); //超链接url地址 $objActSheet->getCell('E26')->getHyperlink()->setTooltip( 'Navigate to website'); //鼠标移上去连接提示信息 ~~~