У меня проблемы с PasteSpecial в python. Вот пример кода:win32com Excel PasteSpecial
import win32com.client as win32com
from win32com.client import constants
xl = win32com.gencache.EnsureDispatch('Excel.Application')
xl.Visible = True
wb = xl.Workbooks.Add()
Sheet1 = wb.Sheets("Sheet1")
# Fill in some summy formulas
for i in range(10):
Sheet1.Cells(i+1,1).Value = "=10*"+str(i+1)
Sheet1.Range("A1:A16").Copy()
Sheet1.Range("C1").Select()
Sheet1.PasteSpecial(Paste=constants.xlPasteValues)
Я получаю следующее сообщение об ошибке:
TypeError: Paste() got an unexpected keyword argument 'Paste'
Я знаю, что паста является ключевым словом аргумент из-за MSDN здесь: http://msdn.microsoft.com/en-us/library/office/ff839476(v=office.15).aspx
Любая идея, почему это не позволит мне сделать это? Не может найти много в Интернете.
Edit для решения (ы):
import win32com.client as win32com
from win32com.client import constants
xl = win32com.gencache.EnsureDispatch('Excel.Application')
xl.Visible = True
wb = xl.Workbooks.Add()
Sheet1 = wb.Sheets("Sheet1")
# Fill in some summy formulas
for i in range(10):
Sheet1.Cells(i+1,1).Value = "=10*"+str(i+1)
Sheet1.Range("A1:A16").Copy()
Sheet1.Range("C1").PasteSpecial(Paste=constants.xlPasteValues)
# OR this I just found right after I posted this works as well:
xl.Selection.PasteSpecial(Paste=constants.xlPasteValues)
Я не работаю с python, но попробуйте этот 'Sheet1.Range (« C1 »). PasteSpecial (Paste = constants.xlPasteValues)' –
Это работает. Сделайте ответ и плохо согласитесь с ним. –
Что касается вашего редактирования: вам следует избегать использования '.Select/Selection'. Возможно, вы захотите увидеть [ЭТО] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros/10718179#10718179) Ссылка Excel-VBA –