laravel中利用PHPExcel读取excel数据存入数据库

文件的位置:

类的引入:

use IOFactory;
use PHPExcel_Cell;
use PHPExcel;

上传文件:

 /**
     * 文件上传
    */
    public function upload(Request $request){
        if($request->isMethod('post')){
            $file = $request->file('excel');
            if ($file->isValid()) {
                // 获取文件相关信息
                $originalName = $file->getClientOriginalName(); // 文件原名
                $ext = $file->getClientOriginalExtension();     // 扩展名
                $realPath = $file->getRealPath();   //临时文件的绝对路径
                $type = $file->getClientMimeType();     // image/jpeg
                if(!in_array($ext,['xls','xlsx','csv']) ){
                    return redirect('admin/index/index')->withInput()->with(with_err("文件类型错误!"));
                }
                // 上传文件
                $filename = date('YmdHis').'-' . uniqid() . '.' . $ext;
                // 使用我们新建的uploads本地存储空间(目录)
                //这里的uploads是配置文件的名称

                //把临时文件移动到指定的位置,并重命名
                $path = public_path().DIRECTORY_SEPARATOR.'uploads'.DIRECTORY_SEPARATOR.'excel'.DIRECTORY_SEPARATOR.date('Ym').DIRECTORY_SEPARATOR;


                $bool =  $file->move($path,$filename);

                if($bool){
                    $img_path =public_path() . '/uploads/excel/'.date('Ym').'/'.$filename;
                    $exfn = $this->_readExcel($img_path,$ext);
                    
                    return $img_path;
                }else{
                    return false;
                }

            }
        }else{

        }
    }

读取excel: 

    /**
     * 读取excel,返回数组
    */
  private function _readExcel($filename,$extension){
      include_once('../app/libs/PHPExcel/Classes/PHPExcel/IOFactory.php');

      //$this->load ->library('PHPExcel/IOFactory');

//      $objReader =IOFactory::createReader('Excel5');
      $objReader =\PHPExcel_IOFactory::createReader("Excel5");

      $objReader->setReadDataOnly(true);
      if ($extension =='xlsx') {
          $objReader = new \PHPExcel_Reader_Excel2007();
          $objPHPExcel = $objReader ->load($filename);
      } else if ($extension =='xls') {
          $objReader = new \PHPExcel_Reader_Excel5();
          $objPHPExcel = $objReader ->load($filename);
      } else if ($extension=='csv') {
          $PHPReader = new \PHPExcel_Reader_CSV();

          //默认输入字符集
          $PHPReader->setInputEncoding('GBK');

          //默认的分隔符
          $PHPReader->setDelimiter(',');

          //载入文件
          $objPHPExcel = $PHPReader->load($filename);
      }
//      $objPHPExcel= $objReader->load($filename);

      $objWorksheet= $objPHPExcel->getActiveSheet();

      $highestRow =$objWorksheet->getHighestRow();

      //echo$highestRow;die;

      $highestColumn = $objWorksheet->getHighestColumn();

      //echo$highestColumn;die;

      $highestColumnIndex =PHPExcel_Cell::columnIndexFromString($highestColumn);

      $excelData =array();

      for($row = 2;$row <= $highestRow; $row++) {

          for ($col= 0; $col < $highestColumnIndex; $col++) {

              $excelData[$row][]=(string)$objWorksheet->getCellByColumnAndRow($col,$row)->getValue();

          }

      }

      return$excelData;
  }

结果:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值