python execl表格数据查询

# -*- coding:utf-8 -*-
import openpyxl
from openpyxl import load_workbook

wb = load_workbook(filename='./1.xlsx')  # 表格所在位置,这里示例是在项目根目录下,是个名为“1.xlsx”的表格。仅支持.xlsx格式。
ws = wb.worksheets[0]
max_row = ws.max_row
max_col = ws.max_column


def value_by_col(value, col):
    """

    :param value: 查询的值,需要与对应单元格数据类型一致。如查整数用int,文本用str,小数用flote
    :param col: 要查询的列号,从1开始,A对应1,B对应2,依次类推
    :return: NULL
    """
    # 针对指定列查询
    re = False
    for row in range(max_row):
        use_cell = ws.cell(row + 1, col)
        if value == use_cell.value:
            print("已找到,在%s单元格"% use_cell.coordinate)
            re = True
    if re:
        pass
    else:
        print("未找到符合的单元格")


def value_by_row(value, row):
    """
    针对指定行查询
    :param value: 要查询的值,需要与对应单元格数据类型一致。如查整数用int,文本用str,小数用flote
    :param row: 要查询的行号,从1开始
    :return: NULL
    """
    re = False
    for col in range(max_col):
        use_cell = ws.cell(row, col + 1)
        # print(use_cell.value, type(use_cell.value))
        if value == use_cell.value:
            print("已找到,在%s单元格" % use_cell.coordinate)
            re = True
    if re:
        pass
    else:
        print("未找到符合的单元格")


def value_by_all(value):
    """
    针对execl全表查询
    :param value: 要查询的值,需要与对应单元格数据类型一致。如查整数用int,文本用str,小数用flote
    :return: NULL
    """
    #
    re = False
    for col in range(max_col):
        for row in range(max_row):
            use_cell = ws.cell(row + 1, col + 1)
            if use_cell.value == value:
                re = True
                print("已找到,在%s单元格" % use_cell.coordinate)
    if re:
        pass
    else:
        print("未找到符合的单元格")


if __name__ == "__main__":
    # 根据需要调用对应的函数
    value_by_col('20190871540000317312', 6)  # 在第6列(即F列)查找
    value_by_row('20190871540000317312', 4)  # 在第4行查找
    value_by_all('20190871540000317312')  # 全表查找

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值