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 = '', $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!'); } } $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!