必要的第三方库:xlrd
功能:根据传入的关键字来检索xls,读取关键字所在的单元格相邻单元格的内容。仅能处理xls。
用法:excel_read(需要查找单元格内容的xls文件路径,检索关键字(只接受list),是否检查(布尔值))
返回一个dict:{检索关键字1:值1,检索关键字2:值2,检索关键字3:值3,....}
如果没有检索到关键字,那么就不会存在dict中,可以在使用的时候添加check=True,则未能检索到关键时会向dict添加一个检索关键字:Miss的元素。
如果一个xls中有多个相同的关键字,则只会获取最后的关键字所在的单元格。
import xlrd
def excel_read(excel_path: str, keywords:list, check=False):
# 根据关键字读取xls中相应的数据
ProjectInfo = {} # 定义字典
workbook = xlrd.open_workbook(excel_path) # 打开xls
worksheets = workbook.sheet_names() # 获取全部的工作表
for sheet in worksheets: # 遍历所有工作表
worksheet = workbook.sheet_by_name(sheet)
row_count = worksheet.nrows
col_count = worksheet.ncols
# 遍历决算认定书每个表的所有单元格,根据关键字提取旁边单元格的数据
for row_index in range(row_count): # 遍历所有行
for col_index in range(col_count): # 遍历所有列
cell_value = str(worksheet.cell_value( # 获取单元格值
row_index, col_index)).strip()
for keystr in keywords: # 遍历所有关键字
if keystr == cell_value: # 对比关键字和单元格值
ProjectInfo[keystr] = ( str(worksheet.cell_value(row_index, col_index + 1)).strip())
if check == True:
v = 0
for words in keywords:
if words not in ProjectInfo:
v += 1
ProjectInfo[words] = str(v)+'.Miss'+words
return ProjectInfo