Python xlrd读取excel日期类型的2种方法


Posted in Python onApril 28, 2015

有个excle表格需要做一些过滤然后写入数据库中,但是日期类型的cell取出来是个数字,于是查询了下解决的办法。

基本的代码结构

data = xlrd.open_workbook(EXCEL_PATH)  

table = data.sheet_by_index(0)  

lines = table.nrows  

cols = table.ncols  

print u'The total line is %s, cols is %s'%(lines, cols) 

读取某个单元格:
table.cell(x, y).value 

x:行
y:列   
行,列都是从0开始

*  时间类型的转换,把excel中时间转成python 时间(两种方式)
excel某个单元格   2014/7/8

xlrd.xldate_as_tuple(table.cell(2,2).value, 0)   #转化为元组形式  

(2014, 7, 8, 0, 0, 0)  

xlrd.xldate.xldate_as_datetime(table.cell(2,2).value, 1)   #直接转化为datetime对象  

datetime.datetime(2018, 7, 9, 0, 0)  

table.cell(2,2).value   #没有转化  

41828.0 

源码查看:

# @param xldate The Excel number  

# @param datemode 0: 1900-based, 1: 1904-based.  

xldate_as_tuple(xldate, datemode)  

输入一个日期类型的单元格会返回一个时间结构组成的元组,可以根据这个元组组成时间类型
datemode 有2个选项基本我们都会使用1900为基础的时间戳
##  

# Convert an Excel date/time number into a datetime.datetime object.  

#  

# @param xldate The Excel number  

# @param datemode 0: 1900-based, 1: 1904-based.  

#  

# @return a datetime.datetime() object.  

#  

def xldate_as_datetime(xldate, datemode)

输入参数和上面的相同,但是返回值是一个datetime类型,就不需要在自己转换了

当然这两个函数都有相应的逆函数,把python类型变成相应的excle时间类型。

Python 相关文章推荐
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
Apr 12 Python
python常见排序算法基础教程
Apr 13 Python
浅谈django model postgres的json字段编码问题
Jan 05 Python
python抓取京东小米8手机配置信息
Nov 13 Python
对Python _取log的几种方式小结
Jul 25 Python
python腾讯语音合成实现过程解析
Aug 01 Python
python 变量初始化空列表的例子
Nov 28 Python
pytorch之ImageFolder使用详解
Jan 06 Python
python requests包的request()函数中的参数-params和data的区别介绍
May 05 Python
什么是python类属性
Jun 10 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
Python发送email的3种方法
Apr 28 #Python
Python中使用partial改变方法默认参数实例
Apr 28 #Python
调试Python程序代码的几种方法总结
Apr 28 #Python
解析Python中的异常处理
Apr 28 #Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 #Python
Python EOL while scanning string literal问题解决方法
Sep 18 #Python
python中尾递归用法实例详解
Apr 28 #Python
You might like
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
php创建sprite
2014/02/11 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
Python 功能和特点(新手必学)
2015/12/30 Python
Python元组知识点总结
2019/02/18 Python
在vscode中配置python环境过程解析
2019/09/28 Python
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
《小松树和大松树》教学反思
2014/02/20 职场文书
中国好声音广告词
2014/03/18 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
小学班主任教育随笔
2015/08/15 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs