经常使用python操作Excel,就会遇到各种坑,比如,有时候你读取到的某一单元格的数据,你预想的结果本来应该是这样的,但是它却是这样的,真是很蛋疼。于是你会找各种解决办法,去解决这个问题!所以鄙人共找到了这么几种方法,仅供参考。

这些方法都会使用到这么一个包:xlrd,一般都是python自带的

导包

import datetime
import xlrd

方法一:自己拼接日期(个人不建议这么做)

def date_as_join(raw_date):
'''
用xlrd模块读取日期格式的单元格
:param raw_date 原始数据,list类型,如:[52234.0, 798798.0]
:return: 日期列表 date_list
'''
date_list = []
for date in raw_date:
new_date = xlrd.xldate_as_tuple(date, 0)
date_str = '-'.join([str(i) for i in new_date[:-3]])
format_date = datetime.datetime.strptime(date_str, '%Y-%m-%d').strftime('%Y-%m-%d')
date_list.append(format_date)
print(date_list)
return date_list date_as_join([3422.0, 8675.0])

方法二:使用 xldate_as_datetime

def date_as_datetime(raw_date):
'''
用xlrd模块读取日期格式的单元格
:param raw_date 原始数据,list类型,如:[52234.0, 798798.0]
:return: 日期列表 date_list
'''
date_list = []
for date in raw_date:
new_date = xlrd.xldate_as_datetime(date, 0).strftime('%m-%d')
date_list.append(new_date)
print(date_list)
return date_list date_as_datetime([3422.0, 867575.0])

方法三:使用 xldate_as_tuple

def date_as_tuple(raw_date):
'''
用xlrd模块读取日期格式的单元格
:param raw_date 原始数据,list类型,如:[52234.0, 798798.0]
:return: 日期列表 date_list
'''
date_list = []
for date in raw_date:
new_date = datetime.datetime(*xlrd.xldate_as_tuple(date, 0)).strftime('%Y-%m-%d')
date_list.append(new_date)
print(date_list)
return date_list date_as_tuple([34242.0, 22342.0])

  

如何利用python的xlrd模块读取日期格式的Excel的更多相关文章

  1. python 利用三方的xlrd模块读取excel文件,处理合并单元格

      目的: python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式.  总体思路: (1)要想实现对Excel数据的读取,需要用到第三方应用,直接应用. (2)实际操作时候和我 ...

  2. Python之xlrd模块读取xls文件与报错解决

    安装 pip3 install xlrd 用法 Sheet编号从0开始 rows,colnum编号均从0开始 合并的单元格仅返回第一格内容 Sheets只能被调用一次,可获取所有sheet取idx 无 ...

  3. python读写Excel文件--使用xlrd模块读取,xlwt模块写入

    一.安装xlrd模块和xlwt模块 1. 下载xlrd模块和xlwt模块 到python官网http://pypi.python.org/pypi/xlrd下载模块.下载的文件例如:xlrd-0.9. ...

  4. $ 用python处理Excel文档(1)——用xlrd模块读取xls/xlsx文档

    本文主要介绍xlrd模块读取Excel文档的基本用法,并以一个GDP数据的文档为例来进行操作. 1. 准备工作: 1. 安装xlrd:pip install xlrd 2. 准备数据集:从网上找到的1 ...

  5. python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

  6. xlrd模块-读取Execl表格

    #xlrd模块 读取execl表格 import xlrd Execl = xlrd.open_workbook(r'Z:\Python学习\python26期视频\day76(allure参数.读e ...

  7. 利用python 下paramiko模块无密码登录

    利用python 下paramiko模块无密码登录   上次我个大家介绍了利用paramiko这个模块,可以模拟ssh登陆远程服务器,并且可以返回执行的命令结果,这次给大家介绍下如何利用已经建立的密钥 ...

  8. python中configparser模块读取ini文件

    python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ...

  9. python 利用python的subprocess模块执行外部命令,获取返回值

    有时执行dos命令需要保存返回值 需要导入库subprocess import subprocess p = subprocess.Popen('ping www.baidu.com', shell= ...

  10. c# 用OpenXmL读取.xlsx格式的Excel文件 返回DataTable

    1.须要引用的dll :  DocumentFormat.OpenXml.dll  ---须要安装一下OpenXml再引用 WindowsBase  ---直接在项目里加入引用 2.方法: /// & ...

随机推荐

  1. C++——第三方插件

    EasyX库安装教程 官网:https://easyx.cn/ 下载地址:EasyX Graphics Library for C++ 作品:CodeBus - 分享有趣的 C/C++ 代码 图中标注 ...

  2. 常用得cron表达式

    0 10 0 1 * ? //每月1号的0:10:00执行 0 01 00 28-31 * ? #月底最后一天早上凌晨1点执行 异常: 查询是否有特殊字符: cat -A ***.sh 解决方法: 1 ...

  3. 搭建Redis高可用集群的哨兵模式(Redis-Sentinel)【Windows环境】

    参考 https://blog.csdn.net/itanping/article/details/100544152 哨兵模式搭建好,Java中配置和使用Redis高可用集群的哨兵模式,引入Jedi ...

  4. idea主题插件 ->Atom Material File Icons

    Atom Material File Icons    插件名

  5. ReactNative 的一些工程化阻碍

    2017年我们团队就开始使用 ReactNative 开发了一些内部管理工具,由于性能及开发体验一般,老是碰到迷一样的问题我们几乎都快放弃使用了,后来随着设备性能的提升,以及框架本身的改进,很多问题得 ...

  6. 关于flex

    flex 是 flex-grow.flex-shrink.flex-basis 的缩写. flex 的默认值是以上三个属性值的组合.假设以上三个属性同样取默认值,则 flex 的默认值是 0 1 au ...

  7. websocket状态码

    状态码 描述 0–999 保留段, 未使用 1000 正常关闭; 无论为何目的而创建, 该链接都已成功完成任务. 1001 终端离开, 可能因为服务端错误, 也可能因为浏览器正从打开连接的页面跳转离开 ...

  8. 控制台程序console输入参数 获取参数

    class Program    {        static void Main(string[] args)        {                                 i ...

  9. 网络-6 IPV6(上)

    一.iPv4与ipv6对比 1.ipv4与ipv6优缺点 1.1 Ipv4与ipv6对比,ipv4中的切片使用的三个字段:identification   flags   fragment offse ...

  10. 实验1task2

    <实验结论> #include <stdio.h> #include <stdlib.h> int main() { int n,sum; scanf(" ...