• PHP导入Excel数据


    最近在开发一个系统,需要做大量的数据处理,特别是导入数据,使用的框架thinkphp6,就目前来说,下面介绍一种逐行添加的方法:

    注意:以下这种方式,仅提供开发思路,读取一行,添加一行。

    但是这个方法有BUG,亲测,例如:我要导入一个10M的文件,字段有40几个,还有一个富文本的字段,总计:3.5万条。

    出现的BUG:导入不进去,也就是超时,但是程序还在执行添加操作。

    仅参考,不建议使用。

    public function importExcel($file)
    {
      if(!$file) return null;
      $filename = '.' . $file;
      $suffix = explode('.',$file);
      $exts = array_pop($suffix);
      $phpExcel = new \PHPExcel();
      // 文件后缀
      if($exts == 'xls'){
          $objRead = new \PHPExcel_Reader_Excel5();
      }else{
          $objRead = new \PHPExcel_Reader_Excel2007();
      };
      // 载入文件 
      $obj = $objRead->load($filename);
      // 获取第一个表
      $currSheet = $obj->getSheet(0);
      // 获取总行数
      $rowCnt = $currSheet->getHighestRow();
      // 获取中列数
      $columnH = $currSheet->getHighestColumn();
      $row ='A';
      // 字母加一位方便下面判断
      $columnH++;
      $fields = array_keys($this->fields);
      $success = 0;
      // 获取数据到data
        for($column = 2; $column <= $rowCnt; $column++){
              $data = [];
              $index = 0;
          while($row != $columnH){
              $data[$fields[$index]] = $currSheet->getCell($row.$column)->getValue();
              $row++;
              $index++;
          }
          $row = 'A';
          $result = $this->universityService->add($data);
          if($result) $success ++;
      }
      var_dump('成功导入' . $success . '条');
    }

    打完收工!

  • 相关阅读:
    Windows server 2008 R2远程桌面终端连接数的破解
    VirtualBox是什么
    蓝屏代码和解决办法
    最新版都叫兽数据恢复软件和注册机
    两种颜色混合
    [译]GLUT教程
    OpenGl的glMatrixMode()函数理解
    OpenGL ES 画直线代码实例
    7天学习opengl入门
    error C2275 将此类型用作表达式非法
  • 原文地址:https://www.cnblogs.com/e0yu/p/16653919.html
Copyright © 2020-2023  润新知