需求:
现有一个200张图片的文件夹,向 excel 中 A列,写入图片的名称,向ecxel 中的 E 列插入对应的图片。
from openpyxl import load_workbook
from openpyxl.drawing.image import Image
import os
import re
def insert_img_to_excel(filname, by_col,to_col,img_folder):
'''
filename : 表格文件路径
by_col : 依靠哪一列
to_col : 插入到哪一列
img_folder : 图片路径
'''
wb = load_workbook(filname)
ws = wb.active
# 获取图片名称
img_fnn = os.listdir(str(img_folder))
index = 1
# 将图片名称写入到 excel 中 A 列
for img_fp in img_fnn:
s= img_fp.replace(".jpg",'')
index += 1
i = 'A' + str(index)
ws[i].value = s
wb.save(filname)
wb.close()
for ind , c in enumerate(ws[by_col],start=1):
# 图片文件的绝对路径
img_lujin = os.path.join(img_folder,c.value + '.jpg')
try:
# 设置图片大小
img_size = Image(img_lujin)
newsize = (150, 200)
img_size.width, img_size.height = newsize
# 将图片写入 excel
ws.add_image(
img_size,
anchor=to_col + str(ind)
)
except:
print(c.value,'匹配不到图片')
wb.save(filname)
if __name__ == '__main__':
insert_img_to_excel(
filname = r'C:\Users\Administrator\Desktop\act_test\mod.xlsx',
by_col = 'A',
to_col = 'E',
img_folder=r"C:\Users\Administrator\Desktop\act_test\Act_img"
)
|