jinguanzhang2019 2023-02-14 15:50 采纳率: 58.3%
浏览 31
已结题

python 在 excel 中用openpyxl 从B列的数据 找对A列所在的行

在excel 有A B两列

B列的 每一个数据 在A列进行搜索,找出 含有A列数据 对应的单元格的 行数

如 知道 B列的0003 在A列的 第4行和 第 15行 存在

请问用openpyxl库 怎么实现

A列 B列
0001 0001
0002 0002
0003 0003
0004 0004
0005 0005
0006 0006
0007 0007
0008 0008
0009 0009
0010 0010
0011 0011
0012 0012
0013 0013
0003
0004
0005
0007
0008
0008
0009
0011
0012

  • 写回答

3条回答 默认 最新

  • qq_46161207 2023-02-14 17:28
    关注

    使用openpyxl库可以在Python中对Excel文件进行读写操作。可以使用该库中的方法,从Excel文件中获取B列中的数据,然后找到它在A列中的行数。

    上述例子解法:

    
    import openpyxl
    
    # 打开Excel文件
    workbook = openpyxl.load_workbook('example.xlsx')
    
    # 选择工作表
    sheet = workbook['Sheet1']
    
    # 遍历B列,查找对应值在A列中的行数
    for row in sheet.iter_rows(min_row=2, min_col=2, max_col=2):
        search_value = row[0].value
        found_rows = []
        for a_row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=1, max_col=1):
            if a_row[0].value == search_value:
                found_rows.append(a_row[0].row)
        if found_rows:
            print(f"值为 '{search_value}' 在 A 列中的行数为:{found_rows}")
    

    在上面的示例代码中,使用load_workbook()方法打开名为"example.xlsx"的Excel文件,使用['Sheet1']选择工作表"Sheet1"。然后使用iter_rows()方法遍历B列中的数据,在A列中查找对应值的行数,将其存储在一个列表中。如果查找到了至少一行,就输出查找结果。

    需要注意的是,在B列中遍历数据时,使用了min_row参数指定从第2行开始遍历,因为假设数据从第1行开始,因此第1行的数据是表头。在A列中遍历数据时,使用了max_row参数指定遍历到最后一行,因为查找的值可能出现在任何行。如果A列的数据很大,可能会导致查找时间较长,因此可以考虑使用一些优化方法来加快查找速度。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 创建了问题 2月14日

悬赏问题

  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题