分享

Excel如何批量导入图片

 黄河简笔画 2022-05-25 发布于河南

在农村工作的朋友向我发来求助,他们有一项年度任务,就是需要走访全村的村民。并且每走访一户需要登记,登记的内容须有照片为佐证。他走访完了,照片也拍了,但是在把照片粘贴进规定的登记模板(word)的时候犯难了。一般的村有七八百户村民,相当于要把七八百张照片一张一张插入word文档的表格中,这得粘贴到猴年马月才搞完,而且,每张图片的大小不一,粘贴进去后还要调整大小十分麻烦和费时。在网上搜索了相关资料以后,我有了自己的解决方案。

首先假设我们有50张图片和一个“走访登记表”:

虽然登记表是word格式的,但是我们可以把它复制到EXCEL表中,做成EXCEL格式的表格,打印出来的效果其实都是一样的。

大概的思路是这样的,因为微软的EXCEL中可以识别部分的HTML代码,那么我们可以批量生成<table>和<img>标签的代码,然后复制粘贴到EXCEL表格中,图片就会自动贴上去。

接下来,我们新建一个EXCEL文件,在这个文件上进行代码的生成操作。

首先有一个前提,就是只能用微软的EXCEL才可以使用HTML代码,WPS的不行。所以,我们用微软的EXCEL软件打开新建的表格文件,新建以下列:

其中姓名列,从走访登记表中把户主一栏的姓名,按原有顺序粘贴。

 “图片文件夹”列复制需要插入的照片所在的文件目录:

 图片索引为公式自动生成,其公式为:IFERROR(LEFT(E2,FIND(".",E2)-1),"")。其逻辑是从“图片文件名”这一列中获取不含后缀的文件名,因为图片的文件名已经按照其姓名重命名,我们可以通过图片的文件名和户主的姓名进行匹配。

“图片文件名”我们可以用批处理命令来获取,新建一个批处理文件(注意用TXT文件编辑时,编码要存为ANSI格式),内写以下代码:

DIR /B > 照片文件名.txt

pause

点击运行后,就会把当前文件夹下的文件名全部读取存入“照片文件名.txt”文件中。

打开该文件,将获取的文件名复制到EXCEL“图片文件名”这一列下。

后面“图片长” 和“图片高”即为要插入图片的大小,一般来说与需要插入位置的单元格一样大小。在目标单元格单击网格线就能得到单元格的像素尺寸:

将该数据填入“图片高”和“图片长”两列中。

接下最后一行,我们用公式拼接成代码,该单元格公式为:

我们最终想要的代码是这样子的:

把代码中的几个参数替换成对应的单元格,形成如下公式: 

IFERROR("<table ><img src="""&C2&"\"&VLOOKUP(B2,D:E,2,FALSE)&""""&" width="""&F2&""""&" height="""&G2&""""&">",")

全部往下复制填充,就得到了批量插入的代码:

复制这些代码,先粘贴在任意的TXT文件中,再从TXT文件中复制

 在走访登记表中对应的“走访图片”第一个单元格,右键选择“选择性粘贴....”

在弹出对话框中选择“Unicode文本”

 神奇的一幕发生了,所有图片均按照设置的大小粘贴进了对应的单元格。

这是,我们还可以通过“Ctrl+A” 选择所有的图片进行放大缩小和调整位置的操作。要注意,图片批量粘贴后,单元格的框线会消失,需要重新设置,图片比单元格略小会比较美观一些。

 需要注意的是,通过提前设置图片大小的方式粘贴图片,会对图片进行压缩,从而导致 看不清。如果只是为了打印,对图片清晰度没有很高要求的话,可以这样做。但是,如果是需要图片上的信息,比如粘贴的图片是健康码、行程码之类的,这种做法就不合适了。

但是也有解决方案,那就是在设置图片大小的时候,把图片设置大一点,比如按照单元格尺寸乘以10倍,先把图片粘贴进去:

 保存关闭文件,然后再用WPS打开。在WPS打开的界面中,选择所有图片,从工具栏直接设置图片大小,设置成自己想要的尺寸。

 这时候,我们点击其中一张图片,会出现一个放大工具:

点击它,就能看到完整的清晰的原图。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多