Home >Backend Development >PHP Tutorial >How to import Excel data with PHPExcel

How to import Excel data with PHPExcel

不言
不言Original
2018-07-04 15:05:014870browse

This article mainly introduces the method of importing Excel data into PHPExcel. It has certain reference value. Now I share it with you. Friends in need can refer to it.

1: Use composer to download phpoffice/phpexcel or Directly download the installation package

composer require phpoffice/phpexcel

1: Import data

Principle: Read the file and get the maximum row and column of the file. Then assemble the data and import it into the database.

Note: If your Excel file is encrypted, it cannot be read. I really wasted a lot of time on this. If anyone knows how to do it, Solved, please let me know. Thank you.

Let’s take a look at how to implement it

Implementation method

  public static function importExcel($file = '', $sheet = 0)
    {        
    $file = iconv("utf-8", "gb2312", $file);   //转码
        if (empty($file) OR !file_exists($file)) {            
        die('file not exists!');
        }        
        $objRead = new PHPExcel_Reader_Excel2007();   //建立reader对象
        if (!$objRead->canRead($file)) {            
        $objRead = new PHPExcel_Reader_Excel5();            
        if (!$objRead->canRead($file)) {                
        die('No Excel!');
            }
        }        
        $cellName = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
            'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI',
            'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ'];        $obj = $objRead->load($file);  //建立excel对象
        $currSheet = $obj->getSheet($sheet);   //获取指定的sheet表
        $columnH = $currSheet->getHighestColumn();   //取得最大的列号
        $columnCnt = array_search($columnH, $cellName);        
        $rowCnt = $currSheet->getHighestRow();   //获取总行数

        $data = [];        
        for ($_row = 1; $_row <= $rowCnt; $_row++) {  //读取内容
            for ($_column = 0; $_column <= $columnCnt; $_column++) {                
            $cellId = $cellName[$_column] . $_row;                
            $cellValue = $currSheet->getCell($cellId)->getValue();                
            $data[$_row][$_column] = $cellValue;
            }
        }        $return_data = [];        
        foreach ($data as $k => $v) {            
        if ($k > 1) {                
        $test = array_combine($data[1], $data[$k]);                
        array_push($return_data, $test);
            }
        }        
        return $return_data;
    }

//Lite version

 public static function importExcel($file = &#39;&#39;, $sheet = 0)
    {        $file = iconv("utf-8", "gb2312", $file);   //转码
        if (empty($file) OR !file_exists($file)) {            
        die(&#39;file not exists!&#39;);
        }        $objRead = new PHPExcel_Reader_Excel2007();   //建立reader对象
        if (!$objRead->canRead($file)) {            
        $objRead = new PHPExcel_Reader_Excel5();            
        if (!$objRead->canRead($file)) {                
        die(&#39;No Excel!&#39;);
            }
        } 
        $obj = $objRead->load($file);  //建立excel对象
        $data =$obj->getSheet($sheet)->toArray();//获取为数组

        $return_data = [];        
        foreach ($data as $k => $v) {            
        if ($k > 0) {                
        $test = array_combine($data[0], $data[$k]);                
        array_push($return_data, $test);
            }
        } 
        return $return_data;
    }

Note that if the file is too large, PHP will take too long to read, we can set it.

 set_time_limit(0);//0代表永久

The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

How to import data from PHP Excel to MySQL database

php method to remove BOM headers from project files in batches

The above is the detailed content of How to import Excel data with PHPExcel. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn