# 获取所有查询条件 date = self.date_entry.get() name = self.line_entry1.get() name1 = self.line_entry2.get() name2 = self.line_entry3.get() # 查询数据 ws = openpyxl.load_workbook(output_path2).active rows = ws.iter_rows(min_row=1, values_only=True) records = [] header = next(rows) for row in rows: if (not date or row[2] == date) and (not name or row[5] == name) and (not name1 or row[8] == name1) and (not name2 or row[6] == name2): records.append(row)怎麽將查詢的第一個條件修改為模糊查詢,查詢的第3列格式為%Y/%m/%d,希望可以輸入年,也能輸入月或日可以模糊匹配到
时间: 2024-01-15 14:02:30 浏览: 98
多条件模糊匹配搜索--模糊查询
4星 · 用户满意度95%
要将第一个查询条件更改为模糊查询,您可以使用Python的字符串方法`find()`或`in`来检查日期字符串是否包含用户输入的子字符串。以下是一个示例代码,它将接受用户输入的日期字符串,并将其与每一行的日期进行比较:
```
# 获取所有查询条件
date = self.date_entry.get()
name = self.line_entry1.get()
name1 = self.line_entry2.get()
name2 = self.line_entry3.get()
# 查询数据
ws = openpyxl.load_workbook(output_path2).active
rows = ws.iter_rows(min_row=1, values_only=True)
records = []
header = next(rows)
for row in rows:
# 模糊匹配日期
if (not date or date in row[2].strftime('%Y/%m/%d')) and \
(not name or row[5] == name) and \
(not name1 or row[8] == name1) and \
(not name2 or row[6] == name2):
records.append(row)
```
在上面的代码中,我们使用了`strftime()`方法将日期对象转换为字符串格式,并使用`in`运算符检查用户输入的日期字符串是否包含在行日期字符串中。
如果要实现更高级的模糊匹配,例如在用户输入月份时仅匹配该月份的所有日期,您可能需要使用Python的正则表达式模块`re`来实现更复杂的模式匹配。
阅读全文