python复制excel图片_python批量导出excel区域图片

使用Python3.7和win32com库,通过复制Excel指定区域并将其转化为图片,实现批量保存。代码中涉及解决Excel文件占用、图片为空等问题,通过调整可能的延迟时间避免报错。示例代码详细解释了可能出现的错误及其解决方案。
摘要由CSDN通过智能技术生成

在python3.7下使用win32com库操作excel文件(需要本地安装有office阅读办公软件),将指定区域复制为图片,并批量保存下来。如果只是需要纯粹导出excel里面的图片建议使用本站另一篇文章介绍的方法:python导出excel中所有图片(写入excel数据) 另外,本片也是在该文的基础上改进而来。

在调试过程中也遇到很多的报错,建议在使用时关闭不必要的程序,如果报excel程序错误可能是excel文件被占用,建议在任务管理器里面关闭所有excel进程!如果出现图片为空建议加上sleep延时,防止剪切板操作过快取不到数据,期间遇到的报错信息已附于代码正文及文章末尾。下面上python源码(源码中夹杂了python使用pypiwin32库操作的代码,已经注释了,有需要的也可以看看):

import win32com.client as win32 # 打开excel文件

#pip install pypiwin32

##########import openpyxl #另一种操作excel的包

import time

import pythoncom,os

from PIL import ImageGrab #用于获取复制的图片

file='312(带图片).xlsx'

file_name = os.path.abspath(file) # 把相对路径转成绝对路径

#pythoncom.CoInitialize() # 开启多线程

excel = win32.Dispatch('Excel.Application') #获取Excel

#excel = DispatchEx("Excel.Application") #启动excel

excel.Visible = True #可视化

#excel.DisplayAlerts = False #是否显示警告 (保存时不会弹出窗口)

#excel.ScreenUpdating = 1 # 关闭屏幕刷新

wb2 = excel.Workbooks.Open(file_name)

ws2 = wb2.Worksheets('Sheet1') # 获取Sheet1

info = ws2.UsedRange#获取有效数据区域

nrows = info.Rows.Count #总行数

#ncols = info.Columns.Count #总列数

max_excel_row = nrows+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值