作者:汽水
关键词:WPS、图片嵌入单元格
有一些同学询问过WPS如何将图片嵌入单元格,其实驿站大佬已经发过,但是有一些同学觉得有些难,所以今天来推出一个比较简单容易理解的办法
Excel嵌入图片至单元格----by华南组-问答-影刀RPA开发者社区
话不多说先上代码
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
from openpyxl import Workbook, load_workbook
from openpyxl.drawing.image import Image
from openpyxl.drawing.spreadsheet_drawing import AnchorMarker, TwoCellAnchor
def main(excel_instance,Sheet_name,image,Line_number,column,Line_number1,column1):
wb = load_workbook(r"C:\Users\汽水\Desktop\新建 XLSX 工作表.xlsx")
ws = wb['Sheet1']
img = Image(image)
# (列,0,行号,0)
_from = AnchorMarker(column, 0, Line_number, 0)
to = AnchorMarker(column1, 0, Line_number1, 0)
img.anchor = TwoCellAnchor('twoCell', _from, to)
ws.add_image(img)
wb.save(r"C:\Users\汽水\Desktop\新建 XLSX 工作表.xlsx")其中的
wb = load_workbook(r"C:\Users\汽水\Desktop\新建 XLSX 工作表.xlsx")后面的excel地址可以替换为上面的 excel_instance设为动态的,或者修改为自己本地的excel表格
ws = wb['Sheet1']Sheet1 可以替换为Sheet_name
wb.save(r"C:\Users\汽水\Desktop\新建 XLSX 工作表.xlsx")同理wb替换
这段代码的原理就是,确定一个单元格的左上角、右下角,然后在这个区域范围内进行图片的插入
在流程中去调用我们的代码模块

但要注意,这里excel一定要处于关闭的状态才可以

其中:
image:图片的路径、Line_number:插入的行号(插入的对应行号要减1,例如:第1行就是0,第2行就是1以此类推)、column:插入的列号(同理A列就是0,B列就是1)、Line_number1:插入行号+1、column:插入列号+1
运行,我们就可以得到一个悬浮的效果,但是这个悬浮有一点好处就是可以随着你的单元格来回改变大小,如下:

意:这个时候还没有完全嵌入图片
WPS有一些快捷键 ctrl+G即可弹出一个选择框,这是我们继续输入快捷键B、T
即可将我们表格中的所有半嵌入的图片进行选择
(CTRL+G B T)
右键点击图片+键盘输入R可以一键将所有的图片嵌入
不推荐,因为元素容易丢失,还会出现偶尔点歪的情况
快捷键全程操作
首先我们先设置一下WPS的设置




这时我们就可以看见一个图片嵌入单元格的快捷键出现了,那么思路就很清晰了,我们先使用上面的选择所有图片的快捷键选中,然后在使用这个快捷键进行插入,理论成立,实践开始!

至此,我们就完成了批量将图片嵌入到我们需要的单元格之中了,之后我们无论进行排序还是筛选图片就会一直跟着去变化了
首先,我们通过代码将图片批量的插入到excel表格中
然后我们通过快捷键,选择所有的图片
CTRL+G B T

然后我们设置一下WPS的快捷键,这个快捷键到时候就根据各位小伙伴的设置而调整,我这里是
ALT+7

需要注意的点位:1、代码插入图片时,excel要处于关闭的状态,不然会报错没有权限
2、代码插入之后不是完全嵌入,而是半嵌入,后面要使用快捷键在进行嵌入
3、输入快捷键之前,一定要让excel承可视化状态完全打开,并且至于前端,不然快捷键是无法 生效的
至此,图片完美嵌入
这就是艺术!