如何用Python openpyxl识别Excel单元格中的子字符串?
使用openpyxl检测Excel单元格中是否包含指定搜索词
原代码的问题
- 逻辑顺序错误:应该判断搜索词是否在单元格值中,原代码写反成了单元格值在字符串
'search_word'里,且未定义实际搜索词变量 - 冗余操作:遍历
sheet_obj['C']时,val本身就是单元格对象,无需再通过cell(row=row, column=3)重复获取 - 未处理空单元格:如果单元格为空,直接调用
value会引发不必要的问题 - 缺少
openpyxl库的导入语句,代码无法运行
修正后的代码
import openpyxl def func1(): # 定义要搜索的关键词,可根据需求修改 search_word = '.pdf' # 加载目标Excel文件 file_obj = openpyxl.load_workbook('Book1.xlsx') sheet_obj = file_obj.active # 遍历C列所有单元格 for cell in sheet_obj['C']: cell_value = cell.value # 跳过空单元格 if cell_value is None: continue # 检查搜索词是否为单元格值的子串(转字符串兼容非文本类型单元格) if search_word in str(cell_value): print(f"找到匹配:单元格值为 {cell_value}") func1()
关键说明
- 必须先导入
openpyxl库,否则代码会报错 - 明确设置
search_word变量,替换成你需要的搜索词(比如.docx、report等) - 遍历列时直接使用单元格对象,简化代码逻辑
- 增加空单元格判断,避免处理
None值时出错 - 将单元格值转为字符串,确保数字、日期等类型的单元格也能被正确检测
内容的提问来源于stack exchange,提问作者Harini Ramasamy
相关产品推荐
相关产品推荐

