行的迭代和动态引用行数

2024-09-30 03:24:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个openpyxl脚本,在通过“for row in sheet.iter\u rows”的迭代引用行号时遇到了障碍。当尝试调用它时,如果没有值\u only=True,它将提取填充单元格的真坐标的元组。如果我用值\u only=True来调用它,它将提取每个填充单元格的值

我试图用一个基于同一行上两个单元格的公式来填充迭代所在行的G列。我已经找到了一种方法来获取行号,如果我直接基于单元格坐标来做的话,但是遍历所有单元格将是低效的。4行迭代>;30单元迭代

--不是访问“for”循环中的索引的副本。这将调用由p1.iter\u行生成的列表的特定部分(min\u row=2,values\u only=True,我试图引用for循环当前所在的行指定)。例如,如果它在第2行,它将在上面代码中的“D”、“C”或“G”之后放置一个2。Enumerate也会这么做。我不需要访问列表本身,我需要当前正在迭代的行的分类引用号

    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)]

Tags: intrueonlycoordinate列表forminrows

热门问题