import xlwings as xw from PIL import ImageGrab def excel_save_img(path, sheet=0, img_name="1", img_suffix="png"): app = xw.App(visible=True, add_book=False) # 1. 使用 xlwings 的 读取 path 文件 启动 wb = app.books.open(path) # 2. 读取 sheet sht = wb.sheets[sheet] # 3. 获取 行与列 nrow = sht.api.UsedRange.Rows.count ncol = sht.api.UsedRange.Columns.count print(nrow) print(ncol) # 4. 获取有内容的 range range_val = sht.range( (1, 1), # 获取 第一行 第一列 (nrow, ncol) # 获取 第 nrow 行 第 ncol 列 ) print(range_val.value) # 5. 复制图片区域 range_val.api.CopyPicture() # 6. 粘贴 sht.api.Paste() pic = sht.pictures[0] # 当前图片 pic.api.Copy() # 复制图片 img = ImageGrab.grabclipboard() # 获取剪贴板的图片数据 img.save(img_name + "." + img_suffix) # 保存图片 pic.delete() # 删除sheet上的图片 wb.close() # 不保存,直接关闭 app.quit() # 退出 path = r"D:1.xlsx" excel_save_img(path, sheet=1, img_name='1')