xlwings с использованием api.autofill, как передать диапазон в качестве аргумента для метода range.autofill

Я могу легко заполнить столбец формулами в Excel, используя VBA и метод range.autofill:

Range("A2").AutoFill Destination:=Range("A2:A10"), Type:=xlFillDefault

Это возьмет формулу/содержимое в ячейке A2 (или диапазоне) и расширит ее до A10.

Глядя на справку MSDN, я вижу: https://msdn.microsoft.com/en-us/library/office/ff195345.aspx

и: https://msdn.microsoft.com/en-us/library/office/ff838605.aspx

На xlwings я могу сделать:

import xlwings as xw
rp = xw.Book(myFile)
rp.sheets('mySheet').range('A2').api.autofill(range, 0)

Но я не знаю, как пройти range. Я не могу просто набрать «A2: A10», мне нужно передать объект диапазона.

Я пытался сделать: rp.sheets('mySheet').range('A2').api.autofill(rp.sheets('mySheet').range('A2:A10'), 0) но это просто взорвало Python!

Любые идеи? Спасибо!


person Yona    schedule 01.02.2017    source источник


Ответы (2)


Вам нужно использовать базовые объекты Range через api оба раза. Предполагая, что вы работаете в Windows, это будет работать:

import xlwings as xw
from xlwings.constants import AutoFillType

wb = xw.Book('Book1')
sheet = wb.sheets(1)
sheet.range('A2').api.AutoFill(sheet.range("A2:A10").api,
                               AutoFillType.xlFillDefault)
person Felix Zumstein    schedule 01.02.2017

Это будет работать на Mac:

import xlwings as xw
from xlwings.constants import AutoFillType

wb = xw.Book('euromillions.csv')
ws = wb.sheets('euromillions')

ws.range("A2").api.autofill(destination = ws.range("A2:A5").api, type = AutoFillType.xlFillDefault)
person kalimero00    schedule 28.03.2020