python - Python win32com 将单词对象插入 Excel 文件
问题描述
Excel 错误:尝试将多个对象插入 Excel 文件时出现“文档未保存”。适用于 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,Filename='Approval.zip',Link=False,DisplayAsIcon=False,Left=dest_cell.Left, Top=dest_cell.Top,Width=50,Height=50) obj.Add(ClassType= None,Filename='Final.docx',Link=False,DisplayAsIcon=True,Left=dest_cell.Left, Top=dest_cell.Top,Width=50,Height=50) obj.Add(ClassType=None,Filename='Release .doc',Link=False,DisplayAsIcon=True,Left=dest_cell.Left, Top=dest_cell.Top,Width=50,Height=50) obj.Add(ClassType=None,Filename='Platform.mpp',Link= False,DisplayAsIcon=False,Left=dest_cell.Left,Top=dest_cell.Top,Width=50,Height=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)
推荐阅读
- php - 如何使用 PHP 在同一网页上显示数据的变化?
- ios - 如何在 iOS 中自动执行添加?
- android - SQLite - 整数 PRIMARY INDEX 约束失败?
- ms-access - 访问表域以从非空表值中列出
- android - admob 未在 android 应用上显示任何广告
- yii2 - Yii2 创建或更新用户配置文件
- premake - Premake5 将无法在 Mac OS 上运行
- dart - 有没有办法确定特定路线是否在您的 Navigator 后台堆栈中?
- c# - 确定 double.Parse 使用的字符数
- javascript - 从js中选定的html选项返回最后2个字符