Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie PHP, um Bilder in Excel zu lesen

Verwenden Sie PHP, um Bilder in Excel zu lesen

王林
王林nach vorne
2020-01-21 19:39:386822Durchsuche

Verwenden Sie PHP, um Bilder in Excel zu lesen

Um Bilder in Excel zu lesen, können Sie PHPSpreadsheet verwenden. phpspreadsheet ist eine in reinem PHP geschriebene Bibliothek und führt Namespaces, PSR-Spezifikationen usw. ein.

PHPSpreadsheet mit Composer installieren

composer require phpoffice/phpspreadsheet

GitHub-Download:

https://github.com/PHPOffice/PhpSpreadsheet

(Kostenlose Video-Tutorial-Empfehlung: PHP-Video-Tutorial)

Das Excel-Bild sieht wie folgt aus:

Verwenden Sie PHP, um Bilder in Excel zu lesen

Projektbeispiel:

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

Das Ergebnis ist wie im Bild gezeigt:

Verwenden Sie PHP, um Bilder in Excel zu lesen

Empfohlene Tutorials zu verwandten Artikeln: PHP-Tutorial

Das obige ist der detaillierte Inhalt vonVerwenden Sie PHP, um Bilder in Excel zu lesen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen