鱼C论坛

 找回密码
 立即注册
查看: 1581|回复: 4

[已解决]如何将excel转换为jpg?

[复制链接]
发表于 2020-9-13 21:44:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在python中有简单的办法将excel的一个页面(一个sheet)的整体转换成一张图片吗?jpg或者任何图片格式都可以。
最佳答案
2020-9-13 22:48:37
可以写成这样,获取有数据的区域,确保全部内容都保存,这个其实就是VBA的操作,用这个库能做很多设置
import win32com.client as win32
from PIL import ImageGrab

excel = win32.Dispatch('Excel.Application')
wb = excel.Workbooks.Open(r'D:\python\test\test1.xlsx')

ws = wb.WorkSheets('Sheet1')#打开工作簿
#进行下面操作需确保excel内有数据
address=ws.UsedRange.Address # 获取使用区域的区域范围
address=address.replace(','')#对区域范围去除符号$
print(address)
start=address.split(':')[0]#获得左上角坐标
end=address.split(':')[1]#获得右下角坐标
ws.Range(f"{start}:{end}").CopyPicture()# 变成图片
ws.Paste(ws.Range('K1'))  #将图片黏贴在excel中

# new_shape_name = 'shape_name_tmp' #通过名称定位图片
# excel.Selection.ShapeRange.Name = new_shape_name #图片的重命名
# ws.Shapes(new_shape_name).Copy() #图片至剪贴板
ws.Shapes(ws.Shapes.Count).Copy()  # 图片至剪贴板
img = ImageGrab.grabclipboard()#从剪贴板获取图片
img.save(r"D:\python\test\test.png")#图片保存
wb.Save()#excel保存
wb.Close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-13 22:14:28 | 显示全部楼层
没有。

不过将表打印成 PDF,然后转成 PNG 就可以了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-13 22:27:45 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-9-13 22:31 编辑

网上找到段代码可以实现,还在研究中。。。。。。。你自己研究下吧,
import win32com.client as win32
from PIL import ImageGrab

excel = win32.Dispatch('Excel.Application')
wb = excel.Workbooks.Open(r'D:\python\test\test1.xlsx')

# ws2 = wb.WorkSheets('Sheet1')
# ws2.Range("A1").Value = 6

ws = wb.WorkSheets('Sheet1')
ws.Range("A1:G19").CopyPicture()
ws.Paste(ws.Range('K1'))  # 变成图片

# new_shape_name = 'shape_name_tmp' #通过名称定位图片
# excel.Selection.ShapeRange.Name = new_shape_name #图片的重命名
# ws.Shapes(new_shape_name).Copy() #图片至剪贴板
ws.Shapes(ws.Shapes.Count).Copy()  # 图片至剪贴板
img = ImageGrab.grabclipboard()
img.save(r"D:\python\test\test.png")
wb.Save()
wb.Close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-13 22:48:37 | 显示全部楼层    本楼为最佳答案   
可以写成这样,获取有数据的区域,确保全部内容都保存,这个其实就是VBA的操作,用这个库能做很多设置
import win32com.client as win32
from PIL import ImageGrab

excel = win32.Dispatch('Excel.Application')
wb = excel.Workbooks.Open(r'D:\python\test\test1.xlsx')

ws = wb.WorkSheets('Sheet1')#打开工作簿
#进行下面操作需确保excel内有数据
address=ws.UsedRange.Address # 获取使用区域的区域范围
address=address.replace(','')#对区域范围去除符号$
print(address)
start=address.split(':')[0]#获得左上角坐标
end=address.split(':')[1]#获得右下角坐标
ws.Range(f"{start}:{end}").CopyPicture()# 变成图片
ws.Paste(ws.Range('K1'))  #将图片黏贴在excel中

# new_shape_name = 'shape_name_tmp' #通过名称定位图片
# excel.Selection.ShapeRange.Name = new_shape_name #图片的重命名
# ws.Shapes(new_shape_name).Copy() #图片至剪贴板
ws.Shapes(ws.Shapes.Count).Copy()  # 图片至剪贴板
img = ImageGrab.grabclipboard()#从剪贴板获取图片
img.save(r"D:\python\test\test.png")#图片保存
wb.Save()#excel保存
wb.Close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-14 07:46:15 | 显示全部楼层
微信截个图不行吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 18:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表