Home>Article>Backend Development> Use php to read pictures in excel

Use php to read pictures in excel

王林
王林 forward
2020-01-21 19:39:38 6810browse

Use php to read pictures in excel

To read pictures in excel, you can use phpspreadsheet. phpspreadsheet is a library written in pure PHP and introduces namespaces, PSR specifications, etc.

Install phpspreadsheet using composer

composer require phpoffice/phpspreadsheet

GitHub download:

https://github.com/PHPOffice/PhpSpreadsheet

(Free video tutorial recommendation:php video tutorial)

excel picture is as shown below:

Use php to read pictures in excel

Project example:

use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\IOFactory; $imageFilePath = './uploads/imgs/'; //图片本地存储的路径 if (!file_exists($imageFilePath)) { //如果目录不存在则递归创建 mkdir($imageFilePath, 0777, true); } try { $inputFileName = './files/1.xlsx'; //包含图片的Excel文件 $objRead = IOFactory::createReader('Xlsx'); $objSpreadsheet = $objRead->load($inputFileName); $objWorksheet = $objSpreadsheet->getSheet(0); $data = $objWorksheet->toArray(); foreach ($objWorksheet->getDrawingCollection() as $drawing) { list($startColumn, $startRow) = Coordinate::coordinateFromString($drawing->getCoordinates()); $imageFileName = $drawing->getCoordinates() . mt_rand(1000, 9999); switch ($drawing->getExtension()) { case 'jpg': case 'jpeg': $imageFileName .= '.jpg'; $source = imagecreatefromjpeg($drawing->getPath()); imagejpeg($source, $imageFilePath . $imageFileName); break; case 'gif': $imageFileName .= '.gif'; $source = imagecreatefromgif($drawing->getPath()); imagegif($source, $imageFilePath . $imageFileName); break; case 'png': $imageFileName .= '.png'; $source = imagecreatefrompng($drawing->getPath()); imagepng($source, $imageFilePath, $imageFileName); break; } $startColumn = ABC2decimal($startColumn); $data[$startRow-1][$startColumn] = $imageFilePath . $imageFileName; } dump($data);die(); } catch (\Exception $e) { throw $e; } public function ABC2decimal($abc) { $ten = 0; $len = strlen($abc); for($i=1;$i<=$len;$i++){ $char = substr($abc,0-$i,1);//反向获取单个字符 $int = ord($char); $ten += ($int-65)*pow(26,$i-1); } return $ten; }

The result is as shown in the figure:

Use php to read pictures in excel

Recommended related articles and tutorials:php tutorial

The above is the detailed content of Use php to read pictures in excel. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:jb51.net. If there is any infringement, please contact admin@php.cn delete