import os #import xlsxwriter import cv2 import pandas as pd from openpyxl import * from openpyxl.drawing.image import Image import re #from PIL import Image
j=0 pic_file= r"D:\P&L Recovery business\新建文件夹\Pic"#图片文件路径 excel_file= r"D:\P&L Recovery business\临时"#excel文件路径 save_file= r"D:\P&L Recovery business\新建文件夹\Save"#文件保存路径 newsize=(240,80) #图片尺寸 for pic_name in os.listdir(pic_file): img = Image(pic_file+"/"+pic_name) img.width,img.height = newsize img_name = os.path.basename(pic_file+"/"+pic_name) print(img_name) for name in os.listdir(excel_file): for i in range (2): # i=0 excel_name = os.path.basename(excel_file+"/"+name) excel_name1 = excel_name.split('.')[0] # print(excel_name) global wb wb = load_workbook(excel_file+"/"+name) sheets = wb.sheetnames wt=wb[sheets[i]] print(wt) wt.add_image(img,'B1') i += 1 j += 1 wb.save(save_file+'/'+excel_name1+'.'+'xlsx') print("第%d个文件添加成功"%j)
二、实现过程
这个代码看上去倒是没啥问题,不过存在部分小bug。
这里【月神】给出一个可行的代码,大家后面遇到了,可以对应的修改下,事半功倍,代码如下所示:
for pic_num, pic_name in enumerate(os.listdir(pic_file), start=1): img = Image(os.path.join(pic_file, pic_name)) img.width, img.height = newsize print(pic_name) for name in os.listdir(excel_file): wb = load_workbook(os.path.join(excel_file, name)) sheets = wb.sheetnames
for sheet_num, sheet in enumerate(sheets, start=1): wt = wb[sheet] print(wt) wt.add_image(deepcopy(img), f'B1')