Python从Excel表格中读取日期格式遇到的问题及对策

2023-05-16

在从Excel表中读取基金交易明细过程中,交易日期的读取一直卡壳。Excel表中的日期是格式良好的2019/10/11,但是读取到了Python中就成了43749.0

这一个数字怎么转换成正确的日期格式呢?

import xlrd

rdBook=xlrd.open_workbook('日期.xls')
rdSheet=rdBook.sheet_by_name('Sheet1')

print(rdSheet.cell_value(0,0))

查了网上资料,Excel的日期产生机制是以一个特定日为基准(在单元格中输入数字1,然后设置单元格式为日期,就会得到1900/01/01这个日期),计算当前单元格日期与基准日的天数,然后展现为日期。43749就是这个天数。

那就考虑用datetime库,若以1900-01-01为基准日期上加43749天,竟然是2019-10-13,也就是多了2天(这一原因还没看明白),因此调整一下基础日期为1899-12-30,输出就是正确的日期咯。代码如下:

import xlrd
import datetime

rdBook=xlrd.open_workbook('日期.xls')
rdSheet=rdBook.sheet_by_name('Sheet1')
# 以下会输出一个数字
print(rdSheet.cell_value(0,0))

# 正确转化Excel日期
def ConvertDate(xlDate):
    # 这里delta是两个日期间隔天数的意思,取值就是Excel来的数字
    delta=datetime.timedelta(days=xlDate)
    # 基础日期就是1899-12-30,将间隔天数加到这个日期上,得到正确的日期戳
    today=datetime.datetime.strptime('1899-12-30','%Y-%m-%d')+delta
    # 格式化输出正确的日期
    return datetime.datetime.strftime(today,'%Y-%m-%d')
# 以下会正确输出日期
print(ConvertDate(rdSheet.cell_value(0,0)))

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python从Excel表格中读取日期格式遇到的问题及对策 的相关文章

随机推荐

  • 解决DELETE PUT请求方式无法提交表单数据的问题

    1 在web xml中配置过滤器 span class hljs comment lt 将POST请求转化为DELETE或者是PUT 要用 method指定真正的请求参数 gt span span class hljs tag lt spa
  • 使用tinode架设自己的私有聊天服务

    需求 国内的商用im软件都不是开源客户端 xff0c 谁也不知道他们到底干了点啥撒 有时还是需要私有云im来保证数据安全 xff0c 比如我们需要传递账号以及密码等 xff1b 方案1 xff1a 使用网页工具将文本加密 xff0c 然后复
  • Apache httpd 目录列表禁用配置(options indexes)

    Apache httpd服务器在缺省的情况下 xff0c 开启了基于目录列表的访问 xff0c 这是一个存在安全隐患的问题 xff0c 因此可以关闭这个功能 在Apache 2 4的版本中 xff0c 不在支持使用 indexes来配置 x
  • ios 谓词

    1 比较运算符 gt lt 61 61 gt 61 lt 61 61 可用于数值及字符串例 xff1a 64 34 number gt 100 34 2 范围运算符 xff1a IN BETWEEN例 xff1a 64 34 number
  • 三大分布

    三大抽样分布 编辑 三大 抽样分布一般是指卡方分布 xff08 2分布 xff09 t分布和F分布 简介 编辑 如图 三大抽样分布 5张 2分布 编辑 定义 设 X 1 X 2 X n 相互独立 都服从标准正态分布N 0 1 则称 随机变量
  • linux 相关:ubuntu 设置 .bashrc之后 重登不起作用

    ubuntu 设置 bashrc之后 重登不起作用 1 问题2 原因3 解决 1 问题 用户身份登陆ubuntu服务器 xff0c 用户目录新建 bashrc文件并source之后设置生效 xff0c 但是使用ssh重登之后发现之前的设置不
  • 在PPPoE拨号环境下实现基于前缀委派(PD)的IPv6(H3C设备)

    本文于2020年4月成文 2020年9月12日修订 之前写过一篇 在PPPoE拨号宽带上使用IPv6 xff08 Cisco路由器 xff09 xff0c 今天就H3C设备又写了一篇 使用此配置 xff0c H3C路由器 xff08 或其他
  • 【已失效】创维DT741-csf光猫管理员/root超级密码获取方法

    厂商已经升级软件 xff0c 本方法已经失效 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 6
  • 解决JAVA“无法验证证书。将不执行该应用程序。”提示

    笔者的一台电脑安装了Java 8 update 361 需要使用UBNT网桥上的AirView应用 xff08 JAVA xff09 xff0c 但运行时提示 xff1a 应用程序出于安全原因被阻止 无法验证证书 将不执行该应用程序 名称
  • DES密钥的校验位(parity bit)

    DES密钥 xff0c 每个字节的最低比特为校验位 xff08 parity bit xff09 定义于ANSI X3 92 1981 xff08 现为ANSI INCITS 92 1981 xff09 xff0c 第3 5节 xff1a
  • Sybase使用sp_helptext查看系统存储过程的源码

    sp helptext存储过程用于显示已编译对象的源代码 sp helptext是Sybase ASE内置的存储过程 xff0c 可从任何位置调用 但实际上 xff0c 如果直接使用 xff0c 常常会得到 xff08 令人头大的 xff0
  • 使用Sybase sp_recompile重新编译存储过程和触发器

    Sybase 15 X中提供了内置的存储过程sp recompile 该存储过程可令表中的存储过程和触发器在下次使用时重新编译 xff08 Causes each stored procedure and trigger that uses
  • 2.1.4 VLSM和CIDR技术

    IP地址表示了IP网络中的一个通信实体 xff0c 一台主机可以有多个IP地址 IP分组中的IP源 目的地址在网络传输过程中保持不变 xff0c 因而总是由确定的源通信实体送往指定的目的通信实体 一个IP地址必须指名两点 xff1a 属于哪
  • VOR/DME进近与ILS进近的不同之处(摘录转载feeyo.com)

    问 xff1a 最近连续几次上班都遇到飞机作VOR DME 进近 xff0c 发现相对ILS xff0c 飞机入口高度都有点偏高 xff0c 速度也大 xff0c 很多跑道头脱离的 所以 xff0c 我想请教下各位FF xff0c 能都给小
  • Vista下AD1980/AD198X声卡驱动

    一直以来 xff0c AD198X声卡并无官方驱动 由于此型号芯片太老 xff0c 大多数OEM厂也停止对它的支持 如果使用XP下的驱动来强行代替 xff0c 会出现爆音以及设备间歇性失效的问题 使用RT的AC97 codec来代替 xff
  • python opencv cython

    在python中import cython编译的 so文件时报错 ImportError salmetric so undefined symbol ZN2cv12 OutputArrayC1ERNS 3MatE 解决方法见4 1 ldd
  • 关于 Windows照片查看器/图片查看器 颜色不准、存在色差的问题的解决方法

    多次遇到过这个现象 xff0c 就是用windows照片查看器 图片查看器 xff0c 显示的照片颜色不准 xff0c 跟用Photoshop校正过的显示或者IE浏览器中的显示 xff0c 存在明显的色差 这个情况出现的具体原因目前尚未能知
  • “此工作站和主域间的信任关系失败”之解决

    某虚拟化的域控制器出现严重故障以至于不可修复 xff0c 故使用之前Hyper V中导出的备份恢复了域控制器 恢复后基本功能正常 xff0c 但部分工作站登录时提示 此工作站和主域间的信任关系失败 解决方案 0 必须确保故障工作站没有其他的
  • go语言操作数据库

    由于项目需要 xff0c 研究了一下golang操作数据库的基本方式 操作环境在macos上 1 首先连接数据库 mysql u root p 2 选择数据库 use test 3 创建一个我们需要测试的user表 CREATE TABLE
  • Python从Excel表格中读取日期格式遇到的问题及对策

    在从Excel表中读取基金交易明细过程中 xff0c 交易日期的读取一直卡壳 Excel表中的日期是格式良好的2019 10 11 xff0c 但是读取到了Python中就成了43749 0 这一个数字怎么转换成正确的日期格式呢 xff1f