python 操作excel表格中图形到word

在excel 中 图形为chart **的形式存在,图像以picture **的形式存在,则只取shape名称为chart的导入到WORD,使用docx 模块写入WORD

需要导入from PIL import ImageGrab, Image 用 pip pillow安装

from PIL import ImageGrab, Image    #pip pillow
import docx
from docx.shared import Inches
from docx import Document
import time
import win32com.client as win32
import os


myDocument = Document()
chartlocation = ['N20:Z50', 'A20:M50',  'A53:M83',
                 'N53:Z83', 'A86:M116', 'N86:Z116', 'A119:M149']
# 循环处理每个截图区域


# 能把所有图片按原图象素导出来
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = True  #可视化
excel.DisplayAlerts = False  #是否显示警告
workbook = excel.Workbooks.Open(os.path.join(os.getcwd(),'2020年公司经营对比表.xlsx'))
for sheet in workbook.Worksheets:
    if sheet.Name=='集团合计':
        for i, shape in enumerate(sheet.Shapes):
            print(sheet.Name,shape.Name)
            if shape.Name.startswith('Chart 7'):  # 'Picture'为图,Chart 为图形
                shape.Copy()
                image = ImageGrab.grabclipboard()
                image.save('temp{}.jpg'.format(i+1), 'jpeg')
                #
                #
                time.sleep(1.5)

                #print(type(image))
                myDocument.add_paragraph('第{}张图'.format(i+1))
                myDocument.add_picture('temp{}.jpg'.format(i+1), width=Inches(6.0))
            
excel.Quit()
myDocument.save('out.docx')

你可能感兴趣的:(python 操作excel表格中图形到word)