#python #python-3.x #excel #openpyxl
#python #python-3.x #excel #openpyxl
Вопрос:
В настоящее время у меня есть электронная таблица Excel, в которую я хотел бы иметь возможность вводить строку в переменную, чтобы затем выполнить поиск в файле Excel, чтобы вернуть, если переменная обесценилась на 5 лет с помощью openpyxl, а затем распечатать всю строку, если дата меньше 5 лет.
В настоящее время у меня есть столбец даты из рабочей книги, но я не уверен, как я могу написать код, чтобы проверить, соответствует ли дата -5 годам с сегодняшней даты.
Ниже приведен мой текущий код…
import openpyxl
from datetime import datetime
five_years = 1825
file = 'example.xlsx'
wb_obj = openpyxl.load_workbook(file)
sheet_obj = wb_obj.active
date_cell_obj = sheet_obj.cell(row=5, column=6)
m_row = sheet_obj.max_row
print(sheet_obj.max_row)
for i in range(1, m_row 1):
today = datetime.today().strftime('%Y-%m-%d')
date_cell_obj = sheet_obj.cell(row=i, column=6)
print(date_cell_obj.value)
Это выводит весь столбец дат, который я хочу проверить.
Любая помощь, как всегда, очень ценится!
Комментарии:
1. Почему бы не использовать функцию datedif()?
2. Каков формат столбца даты в вашем файле Excel?
3. формат — 01/12/2015 (%d-%m-%Y)
Ответ №1:
Обзор: вычислите разницу в днях между двумя датами, затем разделите на 365 дней и сравните с 5 годами
import datetime
#https://strftime.org/
d=datetime.datetime.now()
dateList=['2017-12-31','2001-01-01','2010-11-21']
for item in dateList:
diff_days=(d-datetime.datetime.strptime(item,'%Y-%m-%d')).days
if (diff_days/365)>5:
print(item," found")
Комментарии:
1. Спасибо за это, он работает идеально, нужно было просто изменить формат даты на — ‘%d /% m /%Y’