openxlpy 在excel中批量插入图片 根据单元格内容插入图片 图片随单元格大小变化而变化 AnchorMarker python

需求:

  1. 根据单元格的文本内容,插入相同名称的图片;
  2. 图片大小与单元格大小相同

要用到OS库和openxlpy库

步骤:

  1. 遍历excel区域里面的单元格,看是否有文本内容
  2. 根据文本内容确定图片的名称,从而拿到图片地址,确定图片对象
  3.  将图片对象嵌入到单元格中
import os
from openpyxl import load_workbook
from openpyxl.drawing.image import Image
from openpyxl.drawing.spreadsheet_drawing import AnchorMarker, TwoCellAnchorexcel_file =r"D:\图片调整测试\111.xlsx" #excel地址,别忘记.xlsx
image_folder = r"D:\图片" #图片地址
workbook = load_workbook(excel_file) 
ws = workbook['Sheet1'] #要插入的工作表for row in ws.iter_rows():for cell in row:# 如果单元格中有文本内容if cell.value and isinstance(cell.value, str):image_name = cell.value + '.jpg'image_path = os.path.join(image_folder, image_name)img = Image(image_path)#处理锚点,得到图片的正确位置m= cell.row #行号n = cell.column #列号_from = AnchorMarker(n-1, 50000, m-1, 50000)to = AnchorMarker(n, -50000, m, -50000)img.anchor = TwoCellAnchor('twoCell', _from, to)ws.add_image(img)workbook.save(excel_file)

 试过很多种方法,将图片的宽高设定成单元格行高列宽一致,但是这样子有个问题,图片和单元格的长宽单位不一致,而且换算起来非常麻烦,还会出现图片大小不对的情况,所以放弃了。

使用锚点去定位图片,而且是嵌入图片,后续改变单元格大小行宽的话图片也可以随之改变大小,非常灵活,参考如何用python向excel中以嵌入单元格的方式插入图片? - 知乎里面“中等难度的贪吃蛇”这位的答案,经过多次验证,代码可以顺利运行


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部