liuphillpotts 发表于 2021-6-15 22:06

openpyxl读取excel文档中记录的日期问题

openpyxl读取excel文档中记录的日期问题里面的数据记录的是生日,显示的是xxxx年xx月xx日
wb = load_workbook('shuju.xlsx')
ws = wb.active

shengri = ws['H%d' % i]

shengri1 = shengri.value
print(shengri1)


我发现读取到的是时间戳 42600 之类的

这种情况要怎么读取到正常的时间格式?还是说要怎么转换

mynccs 发表于 2021-6-15 22:27

# 引入模块
import time, datetime

# 使用time
timeStamp = 1381419600
timeArray = time.localtime(timeStamp)
otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
print(otherStyleTime)   # 2013--10--10 23:40:00
# 使用datetime
timeStamp = 1381419600
dateArray = datetime.datetime.fromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
print(otherStyleTime)   # 2013--10--10 23:40:00
# 使用datetime,指定utc时间,相差8小时
timeStamp = 1381419600
dateArray = datetime.datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
print(otherStyleTime)   # 2013--10--10 15:40:00

liuphillpotts 发表于 2021-6-16 12:53

def date(shengri1): #这个有个弊端,输入得时间戳过大后报错,最大支持多少106751
    delta = pd.Timedelta(str(shengri1)+'D')
    real_time = pd.to_datetime('1899-12-30') + delta
    return real_time
real_time = date(shengri1)
print(real_time)


import datetime

def date1(dates):
    delta=datetime.timedelta(days=dates)
    today=datetime.datetime.strptime('1899-12-30','%Y-%m-%d')+delta
# 将1899-12-30转化为可以计算的时间格式并加上要转化的日期戳
    return datetime.datetime.strftime(today,'%Y-%m-%d')#制定输出日期的格式

这是我自己找到的,第一个方法是xxxx-xx-xxx   00:00:00
第二个方法是xxxx-xx-xx后面不带时间

dleo 发表于 2021-6-15 22:24

本帖最后由 dleo 于 2021-6-15 22:25 编辑

from xlrd import xldate
xldate.xldate_as_datetime 能读出时间戳

openpyxl 这个不清楚了

dleo 发表于 2021-6-15 22:30

openpyxl.utils.datetime module — openpyxl 3.0.7 documentation
https://openpyxl.readthedocs.io/en/stable/api/openpyxl.utils.datetime.html?highlight=datetime#openpyxl.utils.datetime.from_excel

wanwfy 发表于 2021-6-15 23:03

用pandas 不香吗,pd.read_excel(xxx.xlsx,date_parser=xxx)

知心 发表于 2021-6-15 23:29

数据量大吗?不大的话给你支个简单的招。你把日期那一列复制到记事本,插入一列设置为文本格式,再粘贴回来。就可以读取到时间了

ijack2001 发表于 2021-6-16 00:41


好厉害的技术贴

shubiao05 发表于 2021-6-16 08:54

建议直接Xlwings吧,这个读写Excel皆可。
页: [1]
查看完整版本: openpyxl读取excel文档中记录的日期问题