图片宽度python_Excel 批量导入图片并根据单元格自动调节大小

本文介绍如何使用Python脚本批量导入Excel表格中指定名称的图片,并根据单元格内容自动调整图片大小。文章提供了从Excel中提取图片并重命名的方法,以及不使用Python时的两种常见操作方式。
摘要由CSDN通过智能技术生成

01

我们在《如何批量获取Excel图片并准确重命名?》一文中提到一个场景,即excel表中至少有两列,一列是图片,另一列是对应的图片名称,我们希望批量地提取当中的图片,并根据对应列为图片重命名。为解决这个问题,我们提供了Python和VBA两种实现办法。该文还将Python脚本封装成小工具给大家下载使用。

02

       本文则对上述场景做了一个闭环,即如何根据某列名称,批量导入对应名称的图片。如果不使用Python,那么常见的也有两种做法。

方法一:

步骤一:

将下方核心公式复制到需要添加图片的列:

="
&A3&".jpg""width=""180""height=""180"">"

834bcb20e3f949dd543505ff1e2f2390.png

步骤二:

桌面新建记事本,将上述D列复制过去,如下图所示:

64205d89f238858ac320fd09100424c7.png

步骤三:

复制记事本这几行,回到Excel,右键,选择性粘贴,选Unicode 文本即可。

ac9a167c9cbf7749ad49a7d017502f12.png

点评:

好处:几乎不用代码,容易操作。

不足:可复用性低,每次要重复上述三步。

          而且由于批量导入的图片尺寸是统一的,如果原图尺寸大小不一,就造成图片变形。

方法二:

使用VBA代码。核心代码如下:

    For k = Start_Row To Cnt        '插入图片        On Error Resume Next                F_jpg = Cells(k, Item_Col) & ".jpg"        F_png = Cells(k, Item_Col) & ".png"        F_default = "None.jpg"                If Dir(MyDir & F_jpg) <> "" Then            F = F_jpg        ElseIf Dir(MyDir & F_png) <> "" Then            F = F_png        Else            F = F_default        End If                Set pic = ActiveSheet.Pictures.Insert(MyDir & F)        '锁定高宽比        pic.ShapeRange.LockAspectRatio = True        '看高宽比。如果图片高宽比高,那么调整到单元格高度,否则调整到单元格宽度        With pic.ShapeRange            '如果图片高宽比比单元格大,说明图片太高,只需调整图片高度            If .Height / .Width > Cells(k, Pic_Col).Height / Cells(k, Pic_Col).Width Then                .Height = Cells(k, Pic_Col).Height - 2                '调整位置                .Top = Cells(k, Pic_Col).Top + 1                .Left = Cells(k, Pic_Col).Left + (Cells(k, Pic_Col).Width - .Width) / 2            '如果图片高宽比比单元格小,说明图片太宽,只需调整图片宽度            Else                .Width = Cells(k, Pic_Col).Width - 2                '调整位置                .Left = Cells(k, Pic_Col).Left + 1                .Top = Cells(k, Pic_Col).Top + (Cells(k, Pic_Col).Height - .Height) / 2            End If        End With    Next k

使用步骤:

点击下图【导入图片】按钮即可。导入的图片会根据单元格自动改变大小,但维持原有长宽比例。

2283ebd483667f820eb183e1876876a8.png

9056810726aad009b26f2b1b4521000b.png

c8354c73f9587dd791df46acf656a1e8.png

点评:

好处:容易复用,最关键的是图片大小可以根据单元格大小自适应。

不足:如果图片被删除或切换了路径,那么该单元格将无法正常显示图片。

03

为方便大家学习,可在本公众号后台回复【导入图片】四个字,获得上述文档。文档还包含了图片批量导出的VBA。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值