场景:在使用laravel框架的时候,需要读取excel,使用 composer install XXXX 安装excel失败,根据报错提示,php不兼容。 因为PHPHExcel使用的php版本
和项目运所需要的php 版本不兼容,php8的版本
解决方法:下载手工安装,步骤如下
1:网站找到PHPExcel下载链接下载PHPExcel
2: 在app下新建一个libs目录,把下载的PHPExcel放在里面3:配置 composer.json文件,找到 class_map字段,把创建的Excel加进去4:更新composerclassmap,使用命令composer dumpautoload [为了更新autoload_classmap.php文件内容]
5:使用。引入->调用
use PHPExcel_IOFactory;
use PHPExcel;省略....$filepath = public_path("upload/1.xlsx"); //.DIRECTORY_SEPARATOR."upload/1.xlsx";print_r($filepath);//$objPHPExcel = PHPExcel_IOFactory::load($filepath);$reader = PHPExcel_IOFactory::createReader('Excel2007');$PHPExcel = $reader->load($filepath);/**读取excel文件中的第一个工作表*/$currentSheet = $PHPExcel->getSheet(0);/**取得最大的列号*/$allColumn = $currentSheet->getHighestColumn();/**取得一共有多少行*/$allRow = $currentSheet->getHighestRow();//循环读取每个单元格的内容。注意行从1开始,列从A开始$list = [];for ($rowIndex = 1; $rowIndex <= $allRow; $rowIndex++) {for ($colIndex = 'A'; $colIndex <= $allColumn; $colIndex++) {$addr = $colIndex . $rowIndex;$cell = $currentSheet->getCell($addr)->getValue();if ($cell instanceof PHPExcel_RichText) {//富文本转换字符串$cell = $cell->__toString();}$list[] = $cell;}}print_r($list);die("SSSSSSS");
6:运行,这个时候应该会报错由于运行的php8不兼容, 根据报错提示,修改对应的phpexcel安装包,基本都是 通过{}获取数组元素,修改成 []方式获取
7:修改完以后正常运行