|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1.想从excel读取日期数据,两个日期相减,但是报错,TypeError: '<' not supported between instances of 'str' and 'float',也不知道哪里格式错了
2.假如stime所指向的date是空的话,这种又该如何剔除?
附上源代码:
import xlrd
from datetime import datetime
from xlrd import xldate_as_tuple
#读取Excel文件
workbook = xlrd.open_workbook('D:\pylearning\DG逾期测试数据.xlsx')
#读取Excel文件中的第一个工作表
sheet1=workbook.sheet_by_index(0)
for row in range(1,sheet1.nrows):
#读取Excel表中的时间,并计算时间间隔
stime = datetime(xldate_as_tuple(sheet1.cell_value(row,3),0)).strftime('%Y/%m/%d')
etime = datetime(xldate_as_tuple(sheet1.cell_value(row, 4),0)).strftime('%Y/%m/%d')
#strptime() 函数根据指定的格式把一个时间字符串解析为时间元组
start = datetime.strptime(stime,'%Y/%m/%d')
end = datetime.strptime(etime,'%Y/%m/%d')
time=(end-start).days; #间隔天数
print("%d逾期天数:%f天" %(row,time))
1 | 2 | INT_OVERDUE_DATE | DT | ss | ss | 20200928 | 20200930 | sa | sa |
| 20200930 | aa | aa | 20200928 | 20200930 |
本帖最后由 qq1151985918 于 2021-3-26 11:41 编辑
你Excel中的日期格式不对
代码改动了很多,你自己对照吧。
- import xlrd
- from datetime import datetime
- from xlrd import xldate_as_tuple
- #读取Excel文件
- workbook = xlrd.open_workbook('test.xlsx')
- #读取Excel文件中的第一个工作表
- sheet1=workbook.sheet_by_index(0)
- for row in range(1,sheet1.nrows):
- #读取Excel表中的时间,并计算时间间隔
- stime = sheet1.cell(row, 2).value
- etime = sheet1.cell(row, 3).value
- #strptime() 函数根据指定的格式把一个时间字符串解析为时间元组
- if stime != "" and etime != "":
- start = datetime.strptime(stime,'%Y/%m/%d')
- end = datetime.strptime(etime,'%Y/%m/%d')
- time=(end-start).days; #间隔天数
- print("%d逾期天数:%d天" %(row,
复制代码
|
|