• 技术文章 >后端开发 >php教程

    利用php实现读取excel中的图片

    VV2020-01-21 19:39:38转载1308

    要实现读取excel中的图片,可以通过phpspreadsheet来实现。phpspreadsheet是一个纯php编写的库,并引入了命名空间、PSR规范等。

    使用composer安装phpspreadsheet

    composer require phpoffice/phpspreadsheet

    GitHub下载:

    https://github.com/PHPOffice/PhpSpreadsheet

    (免费视频教程推荐:php视频教程

    excel图片如下图:

    7ead23da258f75fdf3cbfce2f8b7bd8.png

    项目实例:

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

    结果如图:

    3c6886e3cc2e015c0187f01ea9bbde7.png

    相关文章教程推荐:php教程

    以上就是利用php实现读取excel中的图片的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:脚本之家,如有侵犯,请联系admin@php.cn删除
    专题推荐:php 读取 excel 图片
    上一篇:如何通过imagick让PHP生成PSD文件缩略图(实例) 下一篇:实例详解php cookie与session会话基本用法
    大前端线上培训班

    相关文章推荐

    • 实例详解php中empty、isset、isnull三者之间的区别• 利用php实现验证邮箱格式是否正确• PHP性能优化利器:生成器• php判断复选框是否被选中的方法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网