当前位置: 首页 > 后端技术 > PHP

tp3.2封装了读取excel数据的功能,解决了wps无法读取内容和excel大于Z列(AA、AB列)时无法读取数据的问题

时间:2023-03-29 18:34:01 PHP

tp3.2中可以直接使用该函数。publicfunctionreadExcel($file){header("Content-Type:text/html;charset=utf-8");if(!file_exists($file)){$this->ajaxReturn(['code'=>500,'msg'=>'Excel文件不存在']);}$info=路径信息($file);import('Vendor.Classes.PHPExcel');if($info['extension']=='xls'){import("Vendor.Classes.PHPExcel.Reader.Excel5");$PHPExcel=new\PHPExcel_Reader_Excel5();}elseif($info['extension']=='xlsx'){import("Vendor.Classes.PHPExcel.Reader.Excel2007");$PHPExcel=new\PHPExcel_Reader_Excel2007();}else{$this->ajaxReturn(['code'=>500,'msg'=>'不支持的文件格式,只支持xls,xlsx文件']);}//定义数组arr,用于在excel中存储数据$arr=array();//读取excel$PHPReader->setReadDataOnly(true);//使用文件流读取文件$PHPExcel=$PHPExcel=$PHPExcel->load($file);//$PHPExcel=$PHPExcel->load($file);//使用wps编辑保存文件,不能直接加载读取//获取表格中的第一个工作表,如果要获取第二个,将0改为1,以此类推$currentSheet=$PHPExcel->getSheet(0);//获取总列数$allColumn=$currentSheet->getHighestColumn();//解决excel大于Z列(AA、AB列)时无法读取数据的问题$allColumn=\PHPExcel_Cell::columnIndexFromString($allColumn);//获取总行数$allRow=$currentSheet->getHighestRow();//循环获取表中的数据,$currentRow表示当前行,从哪一行开始读取数据,索引值从0开始for($currentRow=2;$currentRow<=$allRow;$currentRow++){//从哪一列开始,A表示修改第一列为0表示第一列for($currentColumn=0;$currentColumn<=$allColumn;$currentColumn++){//数据坐标//$地址=$currentColumn.$当前行;//读取数据并保存到数组$arr//$arr[$currentRow-2][$currentColumn]=$currentSheet->getCell($address)->getValue();//解决excel大于Z列(AA、AB列)时无法读取数据的问题$arr[$currentRow-2][$currentColumn]=$currentSheet->getCellByColumnAndRow($currentColumn,$currentRow)->获取值();}}返回$arr;}