Maison >développement back-end >tutoriel php >Utiliser php pour lire des images dans Excel
Pour lire des images dans Excel, vous pouvez utiliser phpspreadsheet. phpspreadsheet est une bibliothèque écrite en PHP pur et introduit les espaces de noms, les spécifications PSR, etc.
Installer phpspreadsheet à l'aide de composer
composer require phpoffice/phpspreadsheet
Téléchargement GitHub :
https://github.com/PHPOffice/PhpSpreadsheet
(Recommandation de tutoriel vidéo gratuit : Tutoriel vidéo php)
L'image Excel est la suivante :
Exemple de projet :
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; }
Le résultat est tel que montré dans l'image :
Tutoriels d'articles associés recommandés : tutoriel php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!