php读取带图片excel

编程入门 行业动态 更新时间:2024-10-12 01:26:22

php读取带<a href=https://www.elefans.com/category/jswz/34/1770705.html style=图片excel"/>

php读取带图片excel

composer require phpoffice/phpspreadsheet=1.8.2

支持单元格一个图片,多个图片在一个单元格会覆盖 

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

支持一个单元格多个图片

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;//$startColumn = $this->bb10($startColumn);//$data[$startRow-1][$startColumn-1][] = $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;
}
//26进制转换
function bb10($cc)
{$len = strlen($cc);$res = 0;for($i=0,$j=1;$i<$len;$i++,$j*=26){$res +=(int)(ord($cc[$len-$i-1])-64)*$j;}return $res;
}
//26进制转换
function bb10($cc)
{$len = strlen($cc);$res = 0;for($i=0,$j=1;$i<$len;$i++,$j*=26){$res +=(int)(ord($cc[$len-$i-1])-64)*$j;}echo $res;
}
function aa26($index)
{$res = "";while($index>0){$i = $index%26;if($i==0)$i=26;$res.=chr($i+64);$index=($index-$i)/26;}echo strrev($res);
}
aa26(703);
bb10("AAA");

更多推荐

php读取带图片excel

本文发布于:2024-02-07 05:41:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753386.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图片   php   excel

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!