吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2094|回复: 8
收起左侧

[求助] openpyxl读取excel文档中记录的日期问题

[复制链接]
liuphillpotts 发表于 2021-6-15 22:06
openpyxl读取excel文档中记录的日期问题里面的数据记录的是生日,显示的是xxxx年xx月xx日
[Python] 纯文本查看 复制代码
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
[Asm] 纯文本查看 复制代码
# 引入模块
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
[Python] 纯文本查看 复制代码
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皆可。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-10 22:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表