python将excel时间_Python学习笔记(一)Python时间戳与Excel的日期
今天遇到一个比较实际的问题,从库存报表里面识别出最长库龄的零件,并计算出库龄。
思路很简单,将当前日期减去表格日期,得到库龄。找到max库龄就ok了。
以2行的日期为例,先print日期
d1 = sheet1.cell(1, 22)
print(d1)
结果是:xldate:42368.0
不是一个数字,浮点数字42368.0。
然后用print一下当前的日期。
d2 = datetime.datetime.now()
print(d2)
得到结果是时间数组格式:2020-05-25 20:39:09.933949
明显两者类型不同无法直接相减。
解决思路:
接下来是很有趣的信息(本文的精华就是下面这两句话)。
excel读到的日期的浮点数,代表的是自1900年1月1日以来的天数。
python的时间戳是指格林威治时间自1970年1月1日至当前时间的总秒数。
所以有两种思路:库龄天数=(当前时间戳-表格时间戳)/60/60/24
将excel的浮点数(42368.0)转化成时间数组格式(这步有点麻烦),再转化成时间戳。
然后也将python读到的当前时间(2020-05-25 20:39:09.933949)转换成时间戳,然后再将秒数折算成天数。
2. 库龄天数=表格浮点数-当前日期转换成浮点数
将python的当前时间数组格式-1899年12月31日的时间数组格式,得到的一个时间数组格式。这个差值转换成天数(datetime模块下 .days)。得到当前距离1900年1月1日的天数。然后减去表格的浮点数,得到库龄。
我用的是第2种解决方法是:
date_start = datetime.datetime(1899, 12, 31) #excel表起始日期1900年1月1日
date_now = datetime.datetime.now() #当前时间
d2 = date_now - date_start #今天距离1900年1月1日时间
d2 = today.days #转化为1900年1月1日天数。
d3 = d1 - d2 #库龄
print(d1)
print(d2)
print(d3)
#得到结果
42368.0
43975
1607.0 #库龄
附上完整的代码,找到最长库龄。
import xlrd
import xlwt
import datetime
#读取收货日期,计算库龄,找到最长库龄
wb = xlrd.open_workbook('库存报表20200520.xlsx')
sheet1 = wb.sheet_by_name('Sheet1')
#计算当前时间,转换成excel时间戳,excel时间戳其实时间1990年1月1日
date_start = datetime.datetime(1899, 12, 31)
date_now = datetime.datetime.now()
tod = date_now - date_start
#计算库龄,写入数列deltas
deltas = []
titlesrow = 1
nrows = sheet1.nrows-2
for i in range(nrows):
d = sheet1.cell(1+i, 22)
d = int(d.value)
delta = tod.days - d
deltas.append(delta)
# 新建一个表格,记录分析结果
wb = xlwt.Workbook()
sheet = wb.add_sheet('关键数据')
titles = ['最长库龄', '零件号', '零件名称', '数量']
for i in range(len(titles)):
sheet.write(0, i, titles[i])
# 找到最大库龄,写到表格
max = max(deltas)
sheet.write(1, 0, max)
# 最大库龄对应的零件号,数量
max_index = deltas.index(max)
max_part = sheet1.cell(max_index + 1, 3).value
max_name = sheet1.cell(max_index + 1, 4).value
max_num = sheet1.cell(max_index + 1, 5).value
sheet.write(1, 1, max_part)
sheet.write(1, 2, max_name)
sheet.write(1, 3, max_num)
wb.save('库存分析.xls')
输出结果,在库存分析.xls的sheet1中:
第一次写文章,不知道大家看懂了没。
python将excel时间_Python学习笔记(一)Python时间戳与Excel的日期相关推荐
- python绘制热力地图_Python学习笔记:Python做热力地图
输入win+R然后输入cmd回车,出现DOS界面 命令行上输入:pip install folium,然后如果出现successfully的话则代表你安装成功. 数据我已经上传百度云,大家只要设置好环 ...
- python __name__怎么使用_python学习笔记26(python中__name__的使用)
在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...
- python 操作excel 教程_Python学习笔记(十六)—Python操作Excel
Python中对Excel文件的操作包括:读.写.修改.如果要对其进行如上的操作需要导入Python的第三方模块:xlrd.xlwd.xlutils,其分别对应Python的读.写.修改的操作 一.安 ...
- python 坐标轴 单位刻度_Python学习笔记(matplotlib篇)--坐标轴刻度
python学习笔记--坐标轴刻度 所用的库及环境: ide:pycharm python环境:python3.7 matplotlib: matplotlib 1.11 numpy: nump ...
- python的基本数据结构_Python学习笔记——基本数据结构
列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...
- python编辑器文字放大_python学习笔记000
写在最前面 其实想学习编程很久了,以前也陆陆续续学习过一段时间的编程,但总是半途而废,经过我长达三秒钟的思考,总结出以下两个方面的原因: 1.没有学习的压力.因为我不是程序员,编程不是我吃饭的家伙,会 ...
- python查看方法作用_python学习笔记1,新手小白也能看得懂
这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...
- python的基本数据结构_python学习笔记-基本数据结构
Python 学习笔记-1 写在最前面,因为组内小伙伴要走,生信团队由原来的7个人,慢慢的变的只有我一个人了,需要紧急突击下python,因为有python的流程要交接维护 python 基本情况 代 ...
- python常用开放工具_python学习笔记16-各种模块和开放工具收集整理
一.调试,性能,日志 Debugger: pdb Logger: logging Profilers: profile, hotshot, cProfile 调试模块 pdb 允许你设置(条件)断点, ...
最新文章
- 树莓派harmonyos,【树莓派入门】(三)| 树莓派如何控制步进电机
- android 加载列表占位,使用Glide从URL加载占位符以在加载GIF时显示(Android)
- 云存储精华问答 | 如何选择混合云提供商?
- 阿里云服务器开启端口
- era5数据内容说明_mysql数据库自带主从配置
- Java之加密(信息摘要)工具类(依赖:java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils)...
- Abbirb120型工业机器人_你知道机器人有几种编程方式吗?
- goeasy服务器发送(发布)消息,python服务端使用GoEasy实现websocket消息推送
- 小白刷LeeCode(算法篇)5
- 独家发布!java总结与心得,下载量瞬秒百万
- 【新知实验室】手把手实现腾讯云音视频应用
- Bash 中的字符串变量
- 语音识别-人工智能实验室旗下语音识别频道,汇集最新最全的语音识别新闻及资讯,让您掌握语音识别第一手的资讯-中国人工智能网-Powered by www.AiLab.cn
- cocos2dx:重力加速度,自由落体:利用update()就能快速实现精灵自由落体运动
- 莫辞更坐弹一曲,为君翻作《琵琶行》——python文件I\O
- 16个css3动画按钮/纯代码
- oracle weblogic开启,菜鸟经验:oracle与weblogic自动启动与停止
- 【CRC笔记】CRC-32 ISO-HDLC C语言实现
- 麒麟980/麒麟970/麒麟960处理器有什么区别?Kirin980/Kirin970/Kirin960参数对比
- flutter 项目实战二 网络请求
热门文章
- DirectX11 模板测试
- Unity Realistic FPS插件 Ironsights脚本简化
- 程序员的自我修养_之二_曾国藩的“大悔大悟”
- 免费U盘文件恢复,你不知道的10款u盘恢复软件
- matlab 精品课程,同济大学经济与管理学院精品课程
- Hulu推荐 | 五年口碑依旧百分百好评?《汉密尔顿》上线Disney+
- 尚硅谷算法与数据结构学习笔记05 -- 递归
- elementUI 时间格式化
- 日有所思(4)——磁密,磁场强度,磁通量傻傻分不清
- MLX90614驱动,功能简介以及PEC校验