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/