# -*- 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') # 全表查找