XLWINGS using API.autofill 如何传递范围作为 range.autofill 方法的参数



我可以使用VBA和range.autofill方法轻松地在Excel上用公式填充一列:

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吹了!

有什么想法吗?谢谢!

您需要

两次都通过 api 使用基础 Range 对象。假设你在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)

这将在 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)

谢谢,菲利克斯·祖姆斯坦,提供的答案。让我添加在我的窗口系统上工作的内容:

sheet.range("A1").api.自动填充(工作表范围("A1:A10").api, 0)

在我的情况下,AutoFillType.xlFillDefault 无法识别,将此值替换为 0 即可完成工作。

最新更新