python xlwings Excel 内容截图
阅读原文时间:2023年07月09日阅读:1

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