繁体   English   中英

使用 openpyxl 比较 Python 中的日期

[英]Comparing dates in Python using openpyxl

Excel文档 在下面的代码中,我试图比较 excel 中一列中的日期,但出现此错误:2022-03-18 10:18:16' 不匹配格式 '%Y-%d-%m %H:%多发性硬化症'

for i in sheet2['G']:
 if i.value=='Transaction Time':
     sheet2['G1']='Transaction Time'
 elif i.value=='None':
    sheet2.delete_rows(i.row)
   
 elif datetime.datetime.strptime(str(i.value),'%Y-%m-%d %H:%M:%S')<date1:
    sheet2.delete_rows(i.row)

 elif datetime.datetime.strptime(str(i.value),"%Y-%d-%m %H:%M:%S")>date2:
    sheet2.delete_rows(i.row)

我猜只是一个错字

 elif datetime.datetime.strptime(str(i.value),'%Y-%m-%d %H:%M:%S')<date1:
    sheet2.delete_rows(i.row)

 elif datetime.datetime.strptime(str(i.value),"%Y-%d-%m %H:%M:%S")>date2:
    sheet2.delete_rows(i.row)

你的第一个很好%Y-%m-%d %H:%M:%S但第二个,你颠倒了日期和月份格式"%Y-%d-%m %H:%M:%S"

最后,我只用了几行代码就搞定了。

  1. 我删除了日期上的时间,以便于与这些代码进行比较:

     for i in sheet2['G']: for r in range (2,mr2+1): i.value= str(i.value)[0:10] sheet2['G1']='Transaction Date'
  2. 有了这个成功,我就可以使用以下方法过滤我想要的任何日期:

     for i in sheet2['G']: if str(i.value):=date1. sheet2.delete_rows(i.row)

其中 date1 是我可以修改的变量,或者应用程序用户可以修改以获得感兴趣的任何一天。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM