I try to use this link with vba code but in Python it doesn’t work.
JavaScript
x
18
18
1
import win32com.client
2
Excel = win32com.client.Dispatch("Excel.Application")
3
wb = Excel.Workbooks.Open(r'C:/Users/Home/Desktop/expdata.xlsx')
4
wb.Worksheets("Report").Activate # выбор активного листа
5
sheet = wb.ActiveSheet
6
obj1=wb.ActiveSheet.Pictures.Insert(r'C:UsersHomeDesktoppicture.jpg')
7
obj1.ShapeRange
8
obj1.ShapeRange.LockAspectRatio = msoTrue
9
obj1.ShapeRange.Width = 75
10
obj1.ShapeRange.Height = 100
11
obj1.Left = xlApp.ActiveSheet.Cells(i, 20).Left
12
obj1.Top = xlApp.ActiveSheet.Cells(i, 20).Top
13
obj1.Placement = 1
14
obj1.PrintObject = True
15
wb.save
16
wb.Close
17
Excel.Quit()
18
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’
Advertisement
Answer
Unless you absolutely need to use VBA, this sort of thing can be done thru just Python using xlsxwriter: http://xlsxwriter.readthedocs.io/example_images.html
JavaScript
1
8
1
import xlsxwriter
2
3
# Create an new Excel file and add a worksheet.
4
workbook = xlsxwriter.Workbook('images.xlsx')
5
worksheet = workbook.add_worksheet()
6
worksheet.insert_image('B2', 'python.png')
7
workbook.close()
8