2016-12-22 7 views
0

このリンクをvba code で使用しようとしましたが、Pythonでは動作しません。Python(Anaconda)で指定されたセル位置でExcelに画像を挿入する方法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'

答えて

3

あなたは絶対にVBAを使用する必要がない限り、この種のものはxlsxwriterを使用してだけのPythonを通して行うことができます。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

私はこのリンクをまきます。しかし、xlsxwriterは編集のためのすべての機能を提供していないので、私はVBAを使いたいと思います。たとえば、写真がセル内にある寸法を変更する必要があります。 – Zzema

+0

xlsxwriterでは、既存のファイルに情報を追加することはできません。 – Zzema

+1

十分です - 'Pictures.Insert'の代わりにvbaに戻る' wb.Shapes.AddPicture(FileName、LinkToFile = False、SaveWithDocument = True、Left、Top、Width、Height) 'を試してください。 – wkzhu

関連する問題