我对编程很新,并且使用openpyxl从电子表格中返回一些值。
电子表格很大,包含大约90,000行和50列。
我在下面的图片中创建了一个简化版本的问题,只有几行:
Excel Screenshot Here
我要做的是遍历电子表格中的所有行,其中列B =“Y”,在“代码”列中获取单元格的相应值,并使用该代码执行函数。
我一直在尝试使用sheet.iter_rows,但没有太多运气,并且表现得非常缓慢。
for y_row in sheet.iter_rows(min_row=1, max_row=4, min_col=2, max_col=4):
for cell in row:
if cell.value == "Y"
如何让cell.value专门引用第2列?
非常感谢任何帮助。
答案 0 :(得分:1)
如果您不需要编辑文件,则可以使用只读模式。这样可以更快地加载文件。
wb = load_workbook(filename_and_path, read_only=True)
ws = wb.active
# Only look at cells in column B
for row in ws.iter_rows(min_col=2, max_col=2):
if row[0].value:
# code body.
答案 1 :(得分:0)
尝试:
ckecked = 2
code = 4
for y_row in sheet.iter_rows(min_row=1, max_row=4, min_col=2, max_col=4):
if y_row[checked-1].value == "Y":
myfunc( y_row[code-1].value )