如何在 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()
以编程方式创建一个,但它始终只是一组单元格。如果您想对所有这些单元格执行某些操作,则需要对范围包含的每一行或每一列中的每个单元格执行此操作。
我正在尝试使用字符串和变量的组合在 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()
以编程方式创建一个,但它始终只是一组单元格。如果您想对所有这些单元格执行某些操作,则需要对范围包含的每一行或每一列中的每个单元格执行此操作。