Openpyxl Python - 如何遍历大文件和特定列中的 return 值
Openpyxl Python - How to iterate through large file and return values in specific columns
我对编程还很陌生,我正在使用 openpyxl return 电子表格中的一些值。
电子表格很大,包含大约 90,000 行和 50 列。
我在下图中创建了一个简化版本的问题,只有几行:
Excel Screenshot Here
我想要做的是遍历电子表格中的所有行,其中 B = "Y" 列,取 "code" 列中单元格的相应值并使用该代码执行函数。
我一直在尝试使用 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 列?
如有任何帮助,我们将不胜感激。
尝试:
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 )
如果您不需要编辑文件,则可以利用只读模式。这将更快地加载文件。
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.
我对编程还很陌生,我正在使用 openpyxl return 电子表格中的一些值。
电子表格很大,包含大约 90,000 行和 50 列。
我在下图中创建了一个简化版本的问题,只有几行:
Excel Screenshot Here
我想要做的是遍历电子表格中的所有行,其中 B = "Y" 列,取 "code" 列中单元格的相应值并使用该代码执行函数。
我一直在尝试使用 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 列?
如有任何帮助,我们将不胜感激。
尝试:
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 )
如果您不需要编辑文件,则可以利用只读模式。这将更快地加载文件。
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.