# 获取所有查询条件 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)將這段代碼中date可以進行模糊查詢,如輸入2023/05可以查詢出5月的所有資料
时间: 2024-01-14 21:05:07 浏览: 70
date-month-year.zip_Date.Month_connected66w
如果你想在日期列中进行模糊查询,可以将日期格式化为字符串,然后添加通配符。以下是示例代码:
```
import datetime
# 获取所有查询条件
date = self.date_entry.get()
name = self.line_entry1.get()
name1 = self.line_entry2.get()
name2 = self.line_entry3.get()
# 将日期格式化为字符串并添加通配符
if date:
date_str = datetime.datetime.strptime(date, '%Y/%m').strftime('%Y/%m')
date = f'%{date_str}%'
# 在查询条件中添加通配符
name = f'%{name}%'
name1 = f'%{name1}%'
name2 = f'%{name2}%'
# 查询数据
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')) and (not name or name in row[5]) and (not name1 or name1 in row[8]) and (not name2 or name2 in row[6]):
records.append(row)
```
在上面的代码中,我们首先将日期格式化为字符串(只包含年份和月份),然后在字符串中添加通配符。在查询过程中,我们将日期列转换为字符串,并使用in运算符检查通配符是否出现在字符串中。注意,这种方法可能会影响查询性能,因此应该谨慎使用。
阅读全文