• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHP读取Excel图片对象,并保存替换为相对路径

PHP读取Excel图片对象,并保存替换为相对路径

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了PHP读取Excel,图片对象,相对路径等相关知识,希望对您有所帮助

PHP利用PhpSpreadsheet 和 xlswriter 读取Excel图片对象,保存替换为相对路径

<?php/** * Created by PhpStorm. * User: Administrator * Date: 2021/1/11 0011 * Time: 8:59 */namespace App\Services; use PhpOffice\PhpSpreadsheet\Cell\Coordinate;use PhpOffice\PhpSpreadsheet\Exception;use PhpOffice\PhpSpreadsheet\IOFactory;use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;use Vtiful\Kernel\Excel; /** * 读取Excel图片并保存其路径 * Class ExcelImagePathServer * @package App\Services */class ExcelImagePathServer{    /**     * @var string     */    protected $relative_path = '/images';     /**     * @var Spreadsheet     */    protected $spreadsheet;     /**     * @var Excel     */    protected $xls_writer;     /**     * @var Excel     */    protected $sheet_writer;     /**     * @var string     */    protected $image_path;     /**     * ExcelImagePathServer constructor.     * @param string $excel_file     * @throws \PhpOffice\PhpSpreadsheet\Reader\Exception     */    public function __construct($excel_file)    {        $reader = IOFactory::createReader('Xlsx');        $this->spreadsheet = $reader->load($excel_file);         $config = ['path' => dirname($excel_file)];        $this->xls_writer = new Excel($config);         $this->image_path = dirname($excel_file) . $this->relative_path;        if (!is_dir($this->image_path)) {            mkdir($this->image_path, 0755);        }    }     /**     * @throws Exception     */    public function handle()    {        $write_filename = date('YmdHis') . '.xlsx';        $sheetCount = $this->spreadsheet->getSheetCount();        for ($i = 0; $i < $sheetCount; $i++) {            $worksheet = $this->spreadsheet->getSheet($i);            $data = $worksheet->toArray();            $sheetNames = $this->spreadsheet->getSheetNames();            var_dump($sheetCount, $sheetNames);            // 读取并修改            foreach ($worksheet->getDrawingCollection() as $drawing) {                /**@var $drawing Drawing* */                list($startColumn, $startRow) = Coordinate::coordinateFromString($drawing->getCoordinates());                $image_filename = "/{$i}-" . $drawing->getCoordinates();                $image_suffix = $this->saveImage($drawing, $image_filename);                $image_name = ltrim($this->relative_path, '/') . "{$image_filename}.{$image_suffix}";                var_dump($image_name);                $startColumn = $this->ABC2decimal($startColumn);                $data[$startRow - 1][$startColumn] = $image_name;            }             // 写入文件            if ($i == 0) {                $this->sheet_writer = $this->xls_writer->fileName($write_filename, $sheetNames[$i])->data($data);            } else {                // 向文件中追加工作表                $this->sheet_writer->addSheet($sheetNames[$i])->data($data);            }        }        // 最后的最后,输出文件        $filePath = $this->sheet_writer->output();        var_dump($filePath);    }     /**     * 保存图片     *     * @param Drawing $drawing     * @param $image_filename     * @return string     * @throws Exception     */    protected function saveImage(Drawing $drawing, $image_filename)    {        $image_filename .= '.' . $drawing->getExtension();        switch ($drawing->getExtension()) {            case 'jpg':            case 'jpeg':                $source&nbs
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PHP读取Excel图片对象,并保存替换为相对路径

相关文章

  • CSS实现领积分动画效果
  • 帝国备份王密码忘记了怎么办?
  • 分享个人推荐的Laravel或其它框架的编程规范
  • 一起聊聊JavaScript函数式编程
  • Laravel 图片上传失败怎么办
  • WordPress自动设置标签Tag自动内链无插件实现方法
  • PHP工厂方法模式的好处是什么
  • Nginx下怎么部署php项目
  • 百度与谷歌在SEO表现上的差别
  • JavaScript怎么检测当前浏览器是无头浏览器

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • CentOS7如何使用yum安装PHP7.3
    • Photoshop制作华丽的金色霓虹灯字
    • 社交网站内容对SEO的价值
    • 利用视频网站加快百度及谷歌的重新收录的SEO技
    • Illustrator绘制卡通立体效果的小熊图标
    • 去除织梦CMS后台头部多的一行空白
    • PHP上传多张图片时,选择图片后即可预览的问题
    • Photoshop制作颓废的彩色立体字
    • 关键词meta标签Keywords优化详解
    • 详解PHP中的addcslashes()函数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有