python读取excle的日期或时间,并处理

python读取excel中单元格的内容返回的有5种类型,即上面例子中的ctype:


ctype: 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

python读取excle的日期或时间,并处理_第1张图片

 

import xlrd
from xlrd import xldate_as_tuple

wb = xlrd.open_workbook('data31.xlsx')
sh = wb.sheet_by_name('sheet1')
for i in range(1, 7):
    stra_case = sh.cell(i, 1).value
    index = sh.cell(i, 2).value
    uiappid = int(sh.cell(i, 3).value)
    ctype = sh.cell(i, 4).ctype
    value = sh.cell(i, 4).value
    a = []
    a.append((value, type(value)))
    print('表格类型:%s' % ctype)
    print('值和类型%s' % a)

输出结果:

python读取excle的日期或时间,并处理_第2张图片

所以要根据类型,做不同的处理:

 

import datetime
cell = sheet.cell_value(i, j)
if ctype == 2 and cell % 1 == 0:  # 如果是整形
                    cell = int(cell)
if ctype == 3:
    da = xlrd.xldate_as_tuple(sh.cell_value(i, 4), wb.datemode)   
#单元格内容为时间类型转化成元组,wb.datemode一般为0(初始日期为19000101),1是19040101初始日期
    da1 = datetime.datetime(*da)  
#时间具体到时分秒用datetime方法,只到年月日用date方法
    strda = da1.strftime('%Y%m%d-%H%M%S')   
#时间格式转化str,可设置格式打印输出
    tomorrow = da1 + datetime.timedelta(day=1,seconds=30)   
#如果输出下一天并加30秒
    d = tomorrow.strftime('%Y%m%d-%H%M%S')

 

备注:

datetime.date.today()  #今天日期,只到日
datetime.datetime.now()   #现在时间,到秒

你可能感兴趣的:(__python)