Python:使用win32com将对象插入特定行和列的excel中

时间:2018-05-18 10:36:29

标签: python excel win32com

我正在使用Python 3.5和win32com使用以下方法将对象(.pdf文件)插入到Excel中:

Embedded_object.Add(ClassType=None, Filename=file_loction, Link=False, DisplayAsIcon=True, Left=3, Top=0, Width=50, Height=50)

这样可以正常工作,但是它总是将对象嵌入到A1单元格中,有没有办法使用上面的方法将对象嵌入到特定的行和列中?

编辑:

我也尝试了以下内容:

worksheet.Range('A1:A1').Copy()
worksheet.Paste(Destination=worksheet.Range('C2:C2'))

它将对象放在一个特定的单元格中,但也放在A1:A1中对象的后面,所以它还不是真正的解决方案

2 个答案:

答案 0 :(得分:1)

您可以指定目标单元格,然后将这些值传递到Left的{​​{1}}和Top属性,如下所示:

OLEObject

答案 1 :(得分:0)

好的我觉得我找到了解决方案:

#Create embedded object
Embedded_object = worksheet.OLEObjects()

#Add object to A1:A1 cell
Embedded_object.Add(ClassType=None, Filename=file_loction, Link=False, DisplayAsIcon=True, Left=3, Top=0, Width=50, Height=50)

#Assign object to obj variable
obj = Embedded_object.Item(1)

#Copy and paste object to specific cell
worksheet.OLEObjects(1).Copy()
worksheet.Paste(Destination=worksheet.Range('C2:C2'))

#Delete original object, so only the copied one is left
obj.Delete()