欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python xlwings Excel 内容截图

程序员文章站 2024-02-23 19:36:22
...
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')