行的迭代和动态引用行号

时间:2019-08-20 17:39:13

标签: python openpyxl

我正在处理openpyxl脚本,并通过“ forsheet init.iter_rows”的迭代来引用行号遇到障碍。当尝试不使用values_only = True调用它时,它将拉出已填充单元格真实坐标的元组。如果我用values_only = True调用它,它将提取每个填充单元格的值。

我正在尝试使用基于同一行中两个单元格的公式来填充迭代进行到的每一行的G列。我已经找到一种直接基于单元格坐标获取行号的方法,但是对所有单元格进行迭代效率不高。 4行迭代> 30个单元迭代。

-不是在“ for”循环中访问索引的重复项。那将调用由p1.iter_rows(min_row = 2,values_only = True生成的列表的特定部分,我正在尝试引用for循环当前位于的行#名称。EG如果位于第二行,它将在上面的代码中的“ D”,“ C”或“ G”之后放置2。枚举将做同样的事情。我不需要访问列表本身,我需要分类的参考编号当前正在迭代的行

    for row in p1.iter_rows(min_row=2, values_only=True):
        cvalue = p1['D' + str(row)]
        msrp = p1['C' + str(row)]
        p1['G' + str(row)] = msrp * int(.0825) + cvalue
        test = p1.row.coordinate

更正的代码:

for row in p1.iter_rows(min_row=2, min_col=3, max_col=3):
    for cell in row:
        xy = coordinate_from_string(cell.coordinate)
        colcoor = column_index_from_string(xy[0])
        rowcoor = xy[1]
        cval = p1['C' + str(rowcoor)]
        pval = p1['D' + str(rowcoor)]

0 个答案:

没有答案