Openpyxl Python - 如何遍历大文件并返回特定列中的值

时间:2018-01-20 11:58:06

标签: python excel openpyxl

我对编程很新,并且使用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列?

非常感谢任何帮助。

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 )