import os
import win32com.client
from PIL import ImageGrab
from PIL import ImageOps
filepath = os.path.join(os.path.expanduser("~"), "Downloads/") + "hello.xlsx"
outputPNGImage = os.path.join(os.path.expanduser("~"), "Downloads/") + 'Output.png'
# 生成 execl 对象,用于创建或获取与 Excel 应用程序的连接
xls_file = win32com.client.gencache.EnsureDispatch("Excel.Application")
wb = xls_file.Workbooks.Open(Filename=filepath)
# 关闭生成过程中的告警和提示
xls_file.DisplayAlerts = False
# 通过名称指定 sheet
ws = wb.Worksheets("sheet1")
# 指定生成图片的范围,win32com.client.constants.xlBitmap 以位图格式复制图像
ws.Range(ws.Cells(1,1),ws.Cells(38,10)).CopyPicture(Format= win32com.client.constants.xlBitmap)
# 从系统剪贴板中获取图像
img = ImageGrab.grabclipboard()
# 在生成的图片周围添加10像素的白色边框
border_width = 10
border_color = (255, 255, 255) # 白色 RGB 值
bordered_img = ImageOps.expand(img, border=(border_width, border_width), fill=border_color)
# 保存图片
bordered_img.save(outputPNGImage)
# img.save(outputPNGImage)
wb.Close(SaveChanges=False, Filename=filepath)
python 根据 execl sheet 指定区间生成图片
最新推荐文章于 2024-06-14 11:20:52 发布