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

时间:2017-02-05 15:21:18

标签: python python-3.x 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

中的变量指定单元格范围

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

A&#34;范围&#34;细胞故意作为元组或发生器返回。使用use strictws.iter_rows()以编程方式创建一个,但它始终只是一组单元格。如果您想对所有这些单元格执行某些操作,则需要对该范围包含的每个行或列中的每个单元格执行此操作。

答案 2 :(得分:0)

没有实施。 你不能设置范围。 请参阅openpyxl Issue 414 https://bitbucket.org/openpyxl/openpyxl/issues/414/unable-to-style-range-of-cells