场景:在使用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:修改完以后正常运行