本帖最后由 ymhld 于 2020-5-21 16:50 编辑
[Python] 纯文本查看 复制代码 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 = False #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'): # '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))
#myDocument.add_picture(image, width=Inches(6.0))
excel.Quit()
myDocument.save('out.docx')
问题来了:
以上能把生成out.docx,把找到的图放到WORD中,但是方式是以图的形式存到WORD中的,有没有把shape.copy()获取的图形即chart的形式存在的直接存到WORD中,这样还可以编辑
另外,加入的图形是嵌入型的,打开word,成了一条线,能不能变为上下型文字环绕的图片 |