Python win32com 将 word 对象插入 Excel 文件
Python win32com insert word object into Excel file
Excel 错误:尝试将多个对象插入 excel 文件时 "Document not saved"。适用于 zip 和 .mpp 文件扩展名,但不适用于 .doc 和 .docx 文件类型。插入后,该对象会显示一个白色的未知文件图像,并简单地显示 EMBED("Document","")。但是,当我手动插入这些文档时,我没有遇到任何问题,它们显示为 Word 文档图标。有什么建议吗?
import win32com.client as win32
xl = win32.gencache.EnsureDispatch('Excel.Application')
xl.Visible = 1
wb = xl.Workbooks.Open('BlankTemplate.xlsx') #New Excel file that is blank
xl.DisplayAlerts = False
ws = wb.Worksheets('Sheet1')
dest_cell = ws.Range('C5')
obj = ws.OLEObjects()
obj.Add(ClassType=None,文件名='Approval.zip',Link=False,DisplayAsIcon=False,Left=dest_cell.Left,Top=dest_cell.Top,宽=50,高=50)
obj.Add(ClassType=None,Filename='Final.docx',Link=False,DisplayAsIcon=True,Left=dest_cell.Left,Top=dest_cell.Top,宽度=50,高度=50)
obj.Add(ClassType=None,Filename='Release.doc',Link=False,DisplayAsIcon=True,Left=dest_cell.Left,Top=dest_cell.Top,宽度=50,高度=50)
obj.Add(ClassType=None,Filename='Platform.mpp',Link=False,DisplayAsIcon=False,Left=dest_cell.Left,Top=dest_cell.Top,宽度=50,高度=50)
wb.SaveAs('ProjectDetailsAttachments.xlsx')
xl.DisplayAlerts = True
xl.Application.Quit()
xl.Visible = 0
我明白了!!我录制了一个 Excel VBA 宏,以查看它用于插入 word 文档对象的用途,并发现它们添加了一些额外的参数,一旦我添加它们,它现在就可以工作了。
wordpath = 'C\Program Files (x86)\Microsoft Office\Office 14\WINWORD.EXE'
obj.Add(ClassType=None,Filename='Final.docx',Link=False,DisplayAsIcon=True, \
IconFileName=wordpath,IconIndex=0,IconLabel=Final.docx \
Left=dest_cell.Left, Top=dest_cell.Top,Width=50,Height=50)
Excel 错误:尝试将多个对象插入 excel 文件时 "Document not saved"。适用于 zip 和 .mpp 文件扩展名,但不适用于 .doc 和 .docx 文件类型。插入后,该对象会显示一个白色的未知文件图像,并简单地显示 EMBED("Document","")。但是,当我手动插入这些文档时,我没有遇到任何问题,它们显示为 Word 文档图标。有什么建议吗?
import win32com.client as win32
xl = win32.gencache.EnsureDispatch('Excel.Application')
xl.Visible = 1
wb = xl.Workbooks.Open('BlankTemplate.xlsx') #New Excel file that is blank
xl.DisplayAlerts = False
ws = wb.Worksheets('Sheet1')
dest_cell = ws.Range('C5')
obj = ws.OLEObjects()
obj.Add(ClassType=None,文件名='Approval.zip',Link=False,DisplayAsIcon=False,Left=dest_cell.Left,Top=dest_cell.Top,宽=50,高=50) obj.Add(ClassType=None,Filename='Final.docx',Link=False,DisplayAsIcon=True,Left=dest_cell.Left,Top=dest_cell.Top,宽度=50,高度=50) obj.Add(ClassType=None,Filename='Release.doc',Link=False,DisplayAsIcon=True,Left=dest_cell.Left,Top=dest_cell.Top,宽度=50,高度=50) obj.Add(ClassType=None,Filename='Platform.mpp',Link=False,DisplayAsIcon=False,Left=dest_cell.Left,Top=dest_cell.Top,宽度=50,高度=50)
wb.SaveAs('ProjectDetailsAttachments.xlsx')
xl.DisplayAlerts = True
xl.Application.Quit()
xl.Visible = 0
我明白了!!我录制了一个 Excel VBA 宏,以查看它用于插入 word 文档对象的用途,并发现它们添加了一些额外的参数,一旦我添加它们,它现在就可以工作了。
wordpath = 'C\Program Files (x86)\Microsoft Office\Office 14\WINWORD.EXE'
obj.Add(ClassType=None,Filename='Final.docx',Link=False,DisplayAsIcon=True, \
IconFileName=wordpath,IconIndex=0,IconLabel=Final.docx \
Left=dest_cell.Left, Top=dest_cell.Top,Width=50,Height=50)