jinguanzhang2019 2023-02-14 15:50 采纳率: 70%
浏览 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 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看