目录
使用spire.xls库
安装:pip install spire.xls -i https://pypi.tuna.tsinghua.edu.cn/simple
支持选择行和列截图,不好的一点就是商业库,转出来的图片有水印。
python
from spire.xls import Workbook
def excel_image(excel_file):
'''
ToImage 中可指定需要生成图片的行和列
:param excel_file:
:return:
'''
save_image_path = rf'{excel_file.split('.')[0]}.png'
work = Workbook()
work.LoadFromFile(excel_file)
# 指定第一张表生成数据
# sheet = work.Worksheets.get_Item(0)
# # 移除页边距
# pagesetup = sheet.PageSetup
# pagesetup.TopMargin = 0
# pagesetup.BottomMargin = 0
# pagesetup.LeftMargin = 0
# pagesetup.RightMargin = 0
# image = sheet.ToImage(sheet.FirstRow, sheet.FirstColumn, sheet.LastRow, sheet.LastColumn)
# image.Save(save_image_path)
# work.Dispose()
# 将所有表单生成图片
for i, sheet in enumerate(work.Worksheets):
# image = sheet.ToImage(sheet.FirstRow, sheet.FirstColumn, sheet.LastRow, sheet.LastColumn)
image = sheet.ToImage(sheet.FirstRow, sheet.FirstColumn, 5, 2)
image.Save(rf'{excel_file.split('.')[0]}{i}.png')
work.Dispose()
使用excel2img库
安装:pip install excel2img -i https://pypi.tuna.tsinghua.edu.cn/simple
python
import excel2img
def out_img(excel_file, sheet_list, output_dir):
try:
print("截图中,请等待...")
for sheet in sheet_list:
excel2img.export_img(excel_file, f"{output_dir}/{sheet}.png", sheet)
print("截图完成!")
except Exception as e:
print("截图失败!", e)
if __name__ == '__main__':
file_name = r'C:\Users\Administrator\Desktop\test\成绩表.xls'
sheet_list = ['Sheet1', 'Sheet2'] # 需要截图sheet名称
output_dir = r'C:\Users\Administrator\Desktop'
out_img(file_name, sheet_list, output_dir)