ymhld 发表于 2020-5-20 15:03

python 将excel获取的图表直接写入WORD,修改为上下型环绕

本帖最后由 ymhld 于 2020-5-21 16:50 编辑

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,成了一条线,能不能变为上下型文字环绕的图片

深爱我的女孩 发表于 2020-5-20 15:15

不懂,帮顶,喜欢excel

ymhld 发表于 2020-5-20 15:19

深爱我的女孩 发表于 2020-5-20 15:15
不懂,帮顶,喜欢excel

谢谢,共同学习,pandas excel python 组合更强大

cfanlane 发表于 2020-5-20 15:31

好东西,学习了

王星星 发表于 2020-5-20 15:46

我还是我2020 发表于 2020-5-20 15:47

学习了,正在学python

s466692282 发表于 2020-5-20 16:10

打包成EXE啥

wysyz 发表于 2020-5-20 16:39

学习了,正在学python

独影月下酌酒 发表于 2020-5-20 17:22


学习了,正在学python

ymhld 发表于 2020-5-20 19:04

s466692282 发表于 2020-5-20 16:10
打包成EXE啥

这也要exe版的?没啥用吧
页: [1] 2
查看完整版本: python 将excel获取的图表直接写入WORD,修改为上下型环绕