2016-12-22 2 views
0

J'essaie d'utiliser ce lien avec vba code mais en Python cela ne fonctionne pas.Comment insérer une image dans Excel à une position de cellule spécifiée avec python (Anaconda) use vba

import win32com.client  
Excel = win32com.client.Dispatch("Excel.Application") 
wb = Excel.Workbooks.Open(r'C:/Users/Home/Desktop/expdata.xlsx') 
wb.Worksheets("Report").Activate # выбор активного листа 
sheet = wb.ActiveSheet 
obj1=wb.ActiveSheet.Pictures.Insert(r'C:\Users\Home\Desktop\picture.jpg') 
obj1.ShapeRange 
obj1.ShapeRange.LockAspectRatio = msoTrue 
obj1.ShapeRange.Width = 75 
obj1.ShapeRange.Height = 100 
obj1.Left = xlApp.ActiveSheet.Cells(i, 20).Left 
obj1.Top = xlApp.ActiveSheet.Cells(i, 20).Top 
obj1.Placement = 1 
obj1.PrintObject = True 
wb.save 
wb.Close 
Excel.Quit() 

AttributeError Traceback (most recent call last) in() 9 sheet.Cells(20, 20).Select 10 #obj1=sheet.Shapes.AddPicture (r'C:/Users/Home/Desktop/picture.jpg', False, True, 10, 3, 100, 100) ---> 11 obj1=wb.ActiveSheet.Pictures.Insert(r'C:/Users/Home/Desktop/picture.jpg') 12 obj1.ShapeRange 13 obj1.ShapeRange.LockAspectRatio = msoTrue

AttributeError: 'function' object has no attribute 'Insert'

Répondre

3

Sauf si vous devez absolument utiliser VBA, ce genre de chose peut être fait à travers tout Python en utilisant xlsxwriter: http://xlsxwriter.readthedocs.io/example_images.html

import xlsxwriter 

# Create an new Excel file and add a worksheet. 
workbook = xlsxwriter.Workbook('images.xlsx') 
worksheet = workbook.add_worksheet() 
worksheet.insert_image('B2', 'python.png') 
+0

Je sème ce lien. Mais je voudrais utiliser VBA, car xlsxwriter ne fournit pas toutes les fonctionnalités pour l'édition. Par exemple, j'ai besoin de changer les dimensions que l'image était dans la cellule. – Zzema

+0

Et xlsxwriter n'autorise pas l'ajout d'informations à un fichier existant. – Zzema

+1

Assez juste - retour à vba au lieu de 'Pictures.Insert' try' wb.Shapes.AddPicture (NomFichier, LinkToFile = Faux, SaveWithDocument = Vrai, Gauche, Haut, Largeur, Hauteur) ' – wkzhu