【问题标题】:How do I get the value of a specific column / cell going horizontal in an excel using python如何使用python在excel中获取特定列/单元格的水平值
【发布时间】:2020-09-14 18:35:09
【问题描述】:

我最近开发了代码来查找我输入的关键字,它通过遍历 Excel 工作表的行来查找关键字,但是当我在行中找到该关键字时,我如何水平移动并从列单元格中获取值在我找到关键字的那一行?

【问题讨论】:

    标签: python python-3.x excel automation spreadsheet


    【解决方案1】:

    您在这里没有提供太多关于您正在使用的库的信息,这对于给您任何语法提示是必不可少的。打开pyxl?熊猫?

    所以我可以为您的代码提供一些指导:

    您有一个迭代行的函数。
    您应该以一种跟踪其检查的行的方式编写函数,然后,当它找到关键字时,它应该返回行号。也许使用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 中的值。

    【讨论】:

    • 我正在使用 pyopenxl
    • 基本上,代码通过使用 iter_rows() 遍历行来在 Excel 工作表中找到特定关键字,一旦循环在找到关键字的行上停止,那么我如何获得另一个单元格第 3 或第 4 列水平在同一行中。找到关键字?
    【解决方案2】:

    执行此操作的一种简单方法是在遍历每一行时从不同列中的单元格中获取值。下面,我假设您正在使用现有工作簿,您可以通过声明 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 列中的值是否等于 target 变量。如果是这样,您可以通过更改 output 变量的索引来检索该行上的任何其他值。

    列索引值从 0 开始运行,因此 row[0].value 将是 A 列的行中的值,row[1].value 是 B 列的行中的值,依此类推。

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 1970-01-01
      • 2023-01-15
      • 1970-01-01
      • 2021-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多