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')