>  기사  >  백엔드 개발  >  PHPExcel을 사용하여 Excel 데이터를 가져오는 방법

PHPExcel을 사용하여 Excel 데이터를 가져오는 방법

不言
不言원래의
2018-07-04 15:05:014826검색

이 글은 주로 PHPExcel에서 Excel 데이터를 가져오는 방법을 소개합니다. 이제 참고할 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있습니다.

1: Composer를 사용하여 phpoffice/phpexcel을 다운로드하거나 설치 패키지를 다운로드하세요. direct

composer require phpoffice/phpexcel

Two

1: 데이터 가져오기

원리: 파일을 읽고 파일의 가장 큰 행과 열을 가져옵니다. 그런 다음 데이터를 모아서 데이터베이스로 가져옵니다.

Note: Excel 파일이 암호화되어 있으면 읽을 수 없습니다. 이 문제를 해결하는 방법을 아시는 분 계시면 알려주세요.

구체적으로 구현하는 방법을 살펴보겠습니다

구현 방법

  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;
    }

파일이 너무 크면 PHP 읽기 시간이 너무 길어지므로 주의하세요. 설정하세요.

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

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

PHP Excel에서 MySQL 데이터베이스로 데이터를 가져오는 방법

프로젝트 파일에서 BOM 헤더를 일괄 제거하는 PHP 방법

위 내용은 PHPExcel을 사용하여 Excel 데이터를 가져오는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.