Проверьте, соответствует ли дата -5 годам с сегодняшней даты, используя openpyxl

#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’