python - Openpyxl - 如何知道 iter_rows 中的当前行号?

标签 python excel openpyxl

for row2 in ws.iter_rows(min_row=row, max_row=linha, min_col=coluna_min, max_col=coluna_max):

    if contador_linha == row + 1:
        # Escreve no arquivo na 2° linha com #2#
        arquivo_resultado.write(f'#2#|{contador_linha}|')
    else:
        # Escreve no arquivo na 3° linha em diante com #3#
        arquivo_resultado.write(f'#3#|{contador_linha}|')

    print(str(row2[0].row))
print(str(row2[0].row))

AttributeError:“EmptyCell”对象没有属性“行”

我尝试使用 row[2].row 打印行号,但错误中断了进程...我想知道如何获取 行号 在具有 read_only 模式的 iter_rows 内...

最佳答案

您可以访问 cell.value对于一行中的每个单元格,并将它们与 join() 连接起来

import openpyxl as xl

wb = xl.load_workbook('file.xlsx')
ws = wb.active

for row in ws.iter_rows():
    print(','.join([cell.value for cell in row]))

对不起我的误解。
另一种计算行数的方法是:
for i, row2 in enumerate(ws.iter_rows(min_row = row, max_row = linha, min_col = coluna_min, max_col = coluna_max), row):
    if i == row + 1:
        print('yes')
    else:
        print('no')

如果你想要你的 excel 表的行号,在枚举中,也使用那里的起始“行”。

enumerates 第二个参数的默认值为 0。如果你想为你的可迭代 ws.iter_rows() 设置一个计数器,你可以这样写:
for i, row2 in enumerate(ws.iter_rows(min_row = row, max_row = linha, min_col = coluna_min, max_col = coluna_max)):
    print(i, row2)

但是请记住,您定义了 min_row = row在您的 ws.iter_rows() .由于我不知道您在那里传递了哪个值,因此您不一定会从 Excel 的第 1 行开始。

关于python - Openpyxl - 如何知道 iter_rows 中的当前行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62354097/

相关文章:

python - 为什么 Python 允许比较可调用对象和数字?

python - Python 中的 Github-Flavored-Markdown

excel - 从另一个单元格自动填充单元格值

vba - 需要帮助在 VBA 中优化 SUMIFS

python - Openpyxl 无法读取 xlsx 文件,但如果我保存文件,它会打开

python - 如何将数据框转换为工作表(Python 3.8)?

python - openpyxl 中的 R1C1

python - LPTHW Ex47 属性错误

python - 无法在 ubuntu 13.04 上安装 PIL

arrays - 剥离列或行以形成一维数组