我最近开发了代码来查找我输入的关键字,它通过迭代excel表格的各行来找到关键字,但是当我在一行中找到该关键字时,我如何水平移动并从我找到该关键字的行中的列单元格中获取值?
发布于 2020-05-28 00:40:27
您在这里没有给出关于您正在使用的库的太多信息,这对于给您任何语法提示都是必不可少的。Openpyxl?熊猫?
因此,我可以为您的代码提供一些指导:
您有一个遍历各行的函数。
您应该以这样一种方式编写函数:它跟踪检查哪一行,然后,当它找到关键字时,它应该返回行号。也许可以使用enumerate函数。或者用一个简单的计数器
counter = 1
for cell in column:
if keyword = cell.value:
return counter
else:
counter += 1
有了行号,您所需要做的就是创建一个对值所在单元格的引用,然后在引用中添加1列。
例如,如果关键字的引用是(1,2) (column,row),则执行如下转换
keyword_ref = (1, 2)
value_ref = (keyword_ref[0] + 1, keyword_ref[1])
最后,在value_ref中返回值。
发布于 2020-06-26 04:47:01
要做到这一点,一种简单的方法是在迭代每一行时从不同列的单元格中获取值。下面,我假设您正在使用现有的工作簿,您可以通过声明filepath变量来加载该工作簿。
import openpyxl
wb = openpyxl.load_workbook(filepath)
ws = wb.active
# Iterate each row of the spreadsheet
for row in ws.iter_rows():
# Check if the value in column A is equal to variable "target"
if row[0].value == target:
# If there is a match, output is value in same row from column B
output = row[1].value
在本例中,您将遍历每一行,以检查列A中的值是否等于目标变量。如果是这样,则可以通过更改输出变量的索引来检索该行上的任何其他值。
列索引值从0开始,因此row.value将是A列的行中的值,row1.value是B列的行中的值,依此类推。
https://stackoverflow.com/questions/62047863
复制相似问题