使用 python openpyxl 检查重复值和输入值
check duplicates value and input value with python openpyxl
我想检查 excel 文件中的重复值和输入值。 excel文件的内容每天都在变化,所以我不知道最后一行是哪一行。
excel文件的图像就是我想要做的输出。图像如下。在此处输入图片描述
在excel文件图片中,如果'B'单元格的值重复,运费需要输入'3,000'一次,否则输入'3,000'
这是我完成的代码。这样的话,[Q5:Q max row]的每一列都是'3,000' 如果你有什么想法,请告诉我。
wb = load_workbook(merged_excel_file)
ws = wb.active
last_row = ws.max_row
for o in range(5, last_row+1):
Name_file = ws.cell(row=o, column=2).value
if Name_file.count(ws.cell(row=o, column=2).value) == 1:
ws.cell(row=o, column=17).value = '3000'
else:
continue
为了避免对相同单元格进行多次循环,这种循环相对较慢,您可以将它们的值存储在一个数组中。
wb = load_workbook(merged_excel_file)
ws = wb.active
last_row = ws.max_row
names = []
for o in range(5, last_row+1):
names.append(ws.cell(row=o, column=2).value)
然后,您可以使用 enumerate()
遍历数组中的每个值,这同样只需要从内存访问数组而不是再次遍历单元格:
for o, name in names:
if names.count(name) == 1:
ws.cell(row = o, column = 17).value = 3_000
由于您处理的是数字,我已将单元格更改为写入整数而不是字符串(下划线没有任何作用,它只是一个视觉分隔符,就像您写入“3,000”时一样) .
注意:Python 根据缩进自动循环结束,因此您不需要 else: continue
语句!不过请注意缩进。如果某些东西在循环内,比如上面的 for
循环,它应该比 for
语句多缩进一个制表符。这包括您的 Name_file
作业和 if
语句。
这应该暂时有效。如果您想开始使用数据表做更高级的事情,pandas 是了解更多信息的黄金标准库。
我想检查 excel 文件中的重复值和输入值。 excel文件的内容每天都在变化,所以我不知道最后一行是哪一行。
excel文件的图像就是我想要做的输出。图像如下。在此处输入图片描述
在excel文件图片中,如果'B'单元格的值重复,运费需要输入'3,000'一次,否则输入'3,000'
这是我完成的代码。这样的话,[Q5:Q max row]的每一列都是'3,000' 如果你有什么想法,请告诉我。
wb = load_workbook(merged_excel_file)
ws = wb.active
last_row = ws.max_row
for o in range(5, last_row+1):
Name_file = ws.cell(row=o, column=2).value
if Name_file.count(ws.cell(row=o, column=2).value) == 1:
ws.cell(row=o, column=17).value = '3000'
else:
continue
为了避免对相同单元格进行多次循环,这种循环相对较慢,您可以将它们的值存储在一个数组中。
wb = load_workbook(merged_excel_file)
ws = wb.active
last_row = ws.max_row
names = []
for o in range(5, last_row+1):
names.append(ws.cell(row=o, column=2).value)
然后,您可以使用 enumerate()
遍历数组中的每个值,这同样只需要从内存访问数组而不是再次遍历单元格:
for o, name in names:
if names.count(name) == 1:
ws.cell(row = o, column = 17).value = 3_000
由于您处理的是数字,我已将单元格更改为写入整数而不是字符串(下划线没有任何作用,它只是一个视觉分隔符,就像您写入“3,000”时一样) .
注意:Python 根据缩进自动循环结束,因此您不需要 else: continue
语句!不过请注意缩进。如果某些东西在循环内,比如上面的 for
循环,它应该比 for
语句多缩进一个制表符。这包括您的 Name_file
作业和 if
语句。
这应该暂时有效。如果您想开始使用数据表做更高级的事情,pandas 是了解更多信息的黄金标准库。