如何在 openpyxl 中指定带有变量的单元格范围?

How to specify a cell range with variables in openpyxl?

我正在尝试使用字符串和变量的组合在 openpyxl 中指定一个单元格范围。我知道单元格范围通常可以这样指定; sheet["A1":"U10"]

但是,我想这样指定; sheet["A1":cell]。其中 cell = "U10"

然后我想使用这个单元格范围来应用字体样式:

fontStyle = Font(name="Calibri", size=12, color=colors.BLACK)
cell = "U" + str(daysAmount)
sheet["A1":cell].font = fontStyle

daysAmount 在程序的每次执行中总是可以不同的。在这种情况下,daysAmount = 10

尝试此操作后,返回 AttributeError,因为 Python 认为 sheet["A1":cell] 是一个元组:

Traceback (most recent call last):
  File "businessforecast.py", line 198, in <module>
    textFormatting()
  File "businessforecast.py", line 178, in textFormatting
    sheet["A1":cell].font = fontStyle
AttributeError: 'tuple' object has no attribute 'font'

如何使用 openpyxl 中的变量指定单元格范围?

根据 openpyxl 的文档,您必须使用字符串引用单元格,如下所示:

sheet ["A1:{}".format(cell)]

未实施。 您不能设置样式范围。 请参阅 openpyxl 问题 414 https://bitbucket.org/openpyxl/openpyxl/issues/414/unable-to-style-range-of-cells

A "range" 个单元格被故意作为元组或生成器返回。使用 ws.iter_rows()ws.iter_cols() 以编程方式创建一个,但它始终只是一组单元格。如果您想对所有这些单元格执行某些操作,则需要对范围包含的每一行或每一列中的每个单元格执行此操作。