如何用python处理excel中时间重合_python读取Excel文件中的时间,并计算时间间隔...

这篇博客介绍了如何使用Python的xlrd库读取Excel文件中的日期时间数据,并通过xldate_as_tuple函数将其转换为日期格式。此外,还展示了如何计算Excel表格中两个时间之间的间隔,用于分析时间耗用情况。
摘要由CSDN通过智能技术生成

以此Excel文件为例:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1dpbmdfa2luNjY2,size_16,color_FFFFFF,t_70#pic_center

1.python读取Excel文件中的时间

import xlrd

#读取Excel文件

workbook = xlrd.open_workbook('C:/Users/12270/study/data.xlsx')

#读取Excel文件中的第一个工作表

sheet1=workbook.sheet_by_index(0)

#获取总行数

rows = sheet1.nrows

#获取总列数

cols = sheet1.ncols

#获取第2行的值,返回一个列表

row2=sheet1.row_values(1)

#获取第3列的值,返回一个列表

col4=sheet1.col_values(3)

#获取指定单元格内容

cellValue1 = sheet1.cell(1, 3).value #获取第2行第4列的内容

print("第2行第4列的内容为:",cellValue1)

cellValue2 = sheet1.cell_value(1, 2) #获取第2行第3列的内容

cellValue3 = sheet1.row(2)[3] #获取第3行第4列的内容

结果如下:

20200817200547775.png#pic_left

Excel文件中的第2行第4列的值为日期时间类型,但是实际显示出来的是浮点型的值。

python读取excel中单元格的内容返回的有5种类型分别为:

ctype=0:empty; ctype=1: string; ctype=2: number; ctype=3: date;

ctype=4: boolean; ctype=5: error

从上面我们看到,如果是日期类型,其返回的数据类型值是 3;如果返回的是空值,其数据类型值就是0.

要正确显示日期形式,我们需要使用xlrd中的xldate_as_tuple函数将浮点数转换为日期格式的元组,最后再将该元组数据处理成字符串即可。

xldate_as_tuple 函数中,第一个参数是从excel中读取出来的浮点数;第二个参数有两种取值:0或者1,0是以1900-01-01为基准的日期,而1是1904-01-01为基准的日期。该函数返回的是一个元组,类似:(year, month, day, hour, minute, nearest_second)

正确显示日期时间示例:

import xlrd

from datetime import datetime

from xlrd import xldate_as_tuple

#读取Excel文件

workbook = xlrd.open_workbook('C:/Users/12270/study/data.xlsx')

#读取Excel文件中的第一个工作表

sheet1=workbook.sheet_by_index(0)

#显示日期时间

cellValue1 = sheet1.cell(1, 3).value #获取第2行第4列的内容

cellValue2=xldate_as_tuple(cellValue1,0)

cellValue3=datetime(*cellValue2).strftime('%Y/%m/%d %H:%M:%S')

print("第2行第4列的内容为:",cellValue3)

结果如下:

20200817202119128.png#pic_left

2.python计算Excel中两个时间的间隔

计算Excel文件中核损花费的时间:

import xlrd

from datetime import datetime

from xlrd import xldate_as_tuple

#读取Excel文件

workbook = xlrd.open_workbook('C:/Users/12270/study/data.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 %H:%M:%S')

etime = datetime(*xldate_as_tuple(sheet1.cell_value(row, 4),0)).strftime('%Y/%m/%d %H:%M:%S')

#strptime() 函数根据指定的格式把一个时间字符串解析为时间元组

start = datetime.strptime(stime, '%Y/%m/%d %H:%M:%S')

end = datetime.strptime(etime, '%Y/%m/%d %H:%M:%S')

time=(end - start).total_seconds()/60;#秒数除以60算出花费的分钟数

print("案件%d耗费:%f分钟" %(row,time))

结果为:

20200817203954265.png#pic_left

原文链接:https://blog.csdn.net/Wing_kin666/article/details/108056138

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值