word win32com 通过python添加附件 小附件 vba转换

311 篇文章 3 订阅
149 篇文章 4 订阅
import win32com.client as win32
from win32com.client import constants
# import originpro as op
import time

# src_opju = op.path('e')+ r'Samples\Map Data.opju'
# op.open(file = src_opju, readonly = True)

word = win32.gencache.EnsureDispatch('Word.Application')
word_doc = word.Documents.Add()

# gp = op.find_graph('Graph9')
# gp.activate()
# 4 refers to OLE Object
# https://www.originlab.com/doc/COM/Classes/Application/CopyPage
# op.po.CopyPage(gp.name,4)

tic = time.perf_counter()
word_doc.ActiveWindow.Selection.InlineShapes.AddOLEObject(
        ClassType='Word.Document.12',
        FileName="E:\工作相关\客户需求.doc",
LinkToFile=True,
    DisplayAsIcon=True,
        IconFileName= r"C:\Windows\Installer\{90160000-0011-0000-1000-0000000FF1CE}\wordicon.exe",
         IconIndex =13,
        IconLabel="1.docx"
        )
toc = time.perf_counter()
print(f"Adding embedded object took {toc - tic:0.4f} seconds")

word_doc.SaveAs2(r"D:\KKCap\1.docx")

效果图

在这里插入图片描述
VBA参考

Sub エ栋6()
'
' エ栋6 エ栋
'
'
    Selection.InlineShapes.AddOLEObject ClassType:="Word.Document.12", _
        FileName:="C:\Users\H7113492\Documents\ㄏノ" & ChrW(35828) & " for" & _
        ChrW(32418) & ".docx", LinkToFile:=True, DisplayAsIcon:=True, _
        IconFileName:= _
        "C:\Windows\Installer\{90160000-0011-0000-1000-0000000FF1CE}\wordicon.exe" _
        , IconIndex:=13, IconLabel:="ㄏノ" & ChrW(35828) & " for" & ChrW(32418) & _
         ".docx"
End Sub

参考代码

shape = self.wordDoc.InlineShapes.AddOLEObject(
        ClassType='Excel.Chart',
        FileName=filename
        )
    # set height and width in points
    shape.Height = height
    shape.Width = width
import win32com.client as win32
from win32com.client import constants
import originpro as op
import time

src_opju = op.path('e')+ r'Samples\Map Data.opju'
op.open(file = src_opju, readonly = True)

word = win32.gencache.EnsureDispatch('Word.Application')
word_doc = word.Documents.Add()

gp = op.find_graph('Graph9')
gp.activate()
# 4 refers to OLE Object
# https://www.originlab.com/doc/COM/Classes/Application/CopyPage
op.po.CopyPage(gp.name,4)

tic = time.perf_counter()
word_doc.ActiveWindow.Selection.PasteSpecial(DataType=constants.wdPasteOLEObject)
toc = time.perf_counter()
print(f"Adding embedded object took {toc - tic:0.4f} seconds")

word_doc.SaveAs2("C:\\test\\test.docx")
op.exit()

参考
https://my.originlab.com/forum/topic.asp?TOPIC_ID=47379

http://www.icodeguru.com/webserver/Python-Programming-on-Win32/ch10.htm

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值